この質問に関連しています。
以下は、現在の python-mode
のフォントロックの設定です:
(require 'org)
(defconst lpy-font-lock-keywords
'(("^#\\(\\* .*\\)$" 1 'org-level-1 prepend)
("^#\\(\\*\\* .*\\)$" 1 'org-level-2 prepend)
("^#\\(\\*\\*\\* .*\\)$" 1 'org-level-3 prepend)
("^#\\(\\*\\*\\*\\* .*\\)$" 1 'org-level-4 prepend)
("^#\\(\\*\\*\\*\\*\\* .*\\)$" 1 'org-level-5 prepend)
(lpy-outline-comment-highlight 1 'default prepend)
("`\\([^\n']+\\)'" 1 font-lock-constant-face prepend)))
(font-lock-add-keywords 'python-mode lpy-font-lock-keywords)
(defun lpy-outline-comment-highlight (limit)
(when (re-search-forward "^#\\(?:[^*]\\|$\\)" limit t)
(let* ((pt (point))
(success (save-excursion
(and (re-search-backward "^#\\*" nil t)
(null (re-search-forward "^[^#]" pt t))))))
(when success
(set-match-data (list (line-beginning-position) (line-end-position)
(point) (line-end-position)))
(end-of-line)
t))))
The code appears to do what I want (have comment bodies, but not
starters, in default
face for comments that belong to outlines), but
only for small buffers, or places that I modify.
より大きいバッファ(1画面以上)の場合、 font-lock
は遅延します
必要な面は適用しません。ただし、テキストを変更した場合
その地域を中心に正しく強調表示されます。

上の画像では、 font-lock
は "多次元索引付けの概要"で怠惰です。
だから私はそこにポイントを移動し、スペースを入力 - ハイライトは正しいとなった。
font-lock
に画面上のすべての行を強調表示させるにはどうすればよいですか?