Emacs:字体锁定fontify区域和多行

Emacs:字体锁定fontify区域和多行,emacs,multiline,font-lock,font-lock-mode,Emacs,Multiline,Font Lock,Font Lock Mode,我正在为php/html文件编写一个次要模式。我使用一个函数(参见字体锁定关键字)对区块进行字体化 为了使多行blocs字体化,我需要将font-lock multiline设置为t 一切都很顺利。在这种情况下,他们的行为只是一个问题: 当我有一个多行bloc和一个delete-the-closing标记(?>)时,该bloc是未满足的。当我将标记放回原处时,块不会再次被格式化 我有三个问题: 1/这个问题有简单的解决办法吗 如果不是 2/每次我键入这两个字符时,是否有方法触发字体锁定fonti

我正在为php/html文件编写一个次要模式。我使用一个函数(参见
字体锁定关键字
)对
区块进行字体化

为了使多行blocs字体化,我需要将
font-lock multiline
设置为t

一切都很顺利。在这种情况下,他们的行为只是一个问题: 当我有一个多行bloc和一个delete-the-closing标记(
?>
)时,该bloc是未满足的。当我将标记放回原处时,块不会再次被格式化

我有三个问题:

1/这个问题有简单的解决办法吗

如果不是 2/每次我键入这两个字符时,是否有方法触发
字体锁定fontify缓冲区
: “?”>”


3/更好的是,有没有一种方法可以触发这种功能:当我键入
?>
时,我发现开头标记
这是一种基本方法,逻辑不充分,但它演示了一种选择:

(defvar foo-minor-mode-map (make-keymap) "foo-minor-mode keymap.")
(define-key foo-minor-mode-map (kbd ">") 'foo-electric-gt)

(defun foo-electric-gt (&optional arg)
  (interactive "*p")
  (when (looking-back "\\?$")
    (save-excursion
      (let ((end (- (point) 1))
            (beg (+ (search-backward "<?php") 5)))
        (font-lock-fontify-region beg end))))
  (insert-char ?> arg))

(define-minor-mode foo-minor-mode
  "foo mode.

\\{foo-minor-mode-map}"
  :keymap 'foo-minor-mode-map)
(defvar foo次要模式映射(make keymap)“foo次要模式keymap.”
(定义关键的foo次要模式图(kbd“>”)foo electric gt)
(defun foo electric gt(可选参数和参数)
(互动“*p”)
(当(回头看“\\?$”时)
(省去远足
(让((结束(-(点)1))

(beg(+(向后搜索“这是一种基本方法,逻辑不充分,但它演示了一种选择:

(defvar foo-minor-mode-map (make-keymap) "foo-minor-mode keymap.")
(define-key foo-minor-mode-map (kbd ">") 'foo-electric-gt)

(defun foo-electric-gt (&optional arg)
  (interactive "*p")
  (when (looking-back "\\?$")
    (save-excursion
      (let ((end (- (point) 1))
            (beg (+ (search-backward "<?php") 5)))
        (font-lock-fontify-region beg end))))
  (insert-char ?> arg))

(define-minor-mode foo-minor-mode
  "foo mode.

\\{foo-minor-mode-map}"
  :keymap 'foo-minor-mode-map)
(defvar foo次要模式映射(make keymap)“foo次要模式keymap.”
(定义关键的foo次要模式图(kbd“>”)foo electric gt)
(defun foo electric gt(可选参数和参数)
(互动“*p”)
(当(回头看“\\?$”时)
(省去远足
(让((结束(-(点)1))

(beg(+)(向后搜索)“为什么您要编写自定义方化函数?使用或甚至更好,它对php文件具有很好的方化效果…为什么您要编写自定义方化函数?使用或更好,它对php文件具有很好的方化效果…thx,我用钩子做了几乎相同的事情:(添加hook'after change functions'psp after change t t)thx,我对hook做了几乎相同的事情:(添加hook'after change functions'psp after change t t)