Ini adalah pertanyaan lanjutan untuk Menambahkan sorotan sintaks untuk bagian komentar di Emacs .
Saya memiliki definisi wajah berikut yang diadaptasi dari definisi font-lock-warning-face
dalam font-lock.el
:
; (defface font-lock-warning-face
; '((t :inherit error))
; "Font Lock mode face used to highlight warnings."
; :group 'font-lock-faces)
(defface my-code-section-face
'((t :inherit font-lock-warning-face))
"Face used for comment guards")
(defun add-c-syntax-highlighting ()
(font-lock-add-keywords nil '(
("//\\-+" 0 (if t font-lock-warning-face
my-code-section-face) prepend))))
Saat saya menggunakan t
( font-lock-warning-face
), fungsinya bekerja. Kapan nil
(untuk digunakan my-code-section-face
), itu tidak. Saya hanya bisa berasumsi bahwa ini masalah dengan bagaimana saya mendefinisikan wajah , tetapi saya tidak dapat menemukan masalah. (Menggunakan `
vs. '
tidak membuat perbedaan yang efektif.)
emacs
syntax-highlighting
Sean Allred
sumber
sumber
nil
, semua kunci font gagal.syntax-highlighting
, Anda pasti menjangkau audiens yang tidak terbiasa dengan Emacs.:(
font-lock
bukan salah satunya, seingat sayaJawaban:
Tampak bagi saya seperti Anda perlu untuk mengutip
prepend
:'prepend
, dan memindahkannya luar daftar:Dan untuk pengujian, setidaknya, singkirkan semua barang
whatever
- cukup gunakan sesuatu seperti(0 'my-code-section-face t)
.Jadi sesuatu seperti ini:
Dan Anda selalu dapat melihat apakah
defface
karya Anda seperti yang Anda inginkan, dengan menggunakanM-x list-faces-display
.sumber