这里的文档中的Cperl字体锁定区域

我在 cperl-mode 中遇到问题-a-newline-into-a-here-doc“>这个问题。基本上在 cperl-mode 中的here doc的行开头插入换行符会破坏语法高亮。其中一个答案建议使用font-lock-extend-region-functions来扩展字体锁定区域以包含所有这里的doc。我已经使用下面的代码完成了这项工作,并使用 highlight-refontification 进行了验证。但是,即使区域被扩展,当我插入换行符时,区域也会分裂并且语法高亮显示仍然会中断。我的功能如下所示

(defun my/cperl-font-lock-extend-region-here ()
  (save-excursion
    (goto-char font-lock-beg)
    (if (re-search-backward "=<<\s*['\"]?[0-9a-zA-Z_]+['\"]?\s*;" nil t)
        (if (string-match "=<<\s*['\"]?\\([0-9a-zA-Z_]+\\)['\"]?\s*;" (thing-at-point 'line t))
            (let ((here-tag (concat "^" (match-string 1 (thing-at-point 'line t)) "$")))
              (beginning-of-line)
              (let ((here-start (point)))
                (goto-char font-lock-end)
                (if (re-search-forward here-tag nil t)
                    (progn
                      (end-of-line)
                      (if (< font-lock-end (point))
                          (setq font-lock-end (point)))))
                (if (> font-lock-beg here-start)
                    (setq font-lock-beg here-start))))))))

我的问题是,有没有聪明的人知道一种防止语法突出显示在 cperl-mode 这里的文档?

1

没有回复。

0