ฉันต้องการไฮไลต์โค้ดด้วยใบหน้าต่างๆในโหมดรอง
นี่คือภาพหน้าจอที่ใกล้เคียงกับสิ่งที่ฉันต้องการ:
สิ่งหนึ่งที่ฉันหายไปจะมีตัวอักษรแสดงความคิดเห็นใน#
font-lock-comment-face
แนวคิดคือมีความคิดเห็นที่ "เป็น" ของโครงร่างที่เน้นเป็นข้อความธรรมดาดังนั้นจึงง่ายต่อการอ่าน ในขณะที่มีความเห็นปกติกับใบหน้าที่โดดเด่นน้อยกว่าปกติของพวกเขา
นี่คือรหัสที่ฉันใช้:
(setq-local font-lock-defaults
'(python-font-lock-keywords
nil nil nil nil
(font-lock-syntactic-face-function
. lpy-font-lock-syntactic-face-function)))
(defun lpy-font-lock-syntactic-face-function (state)
"Return syntactic face given STATE.
Returns 'defalt face for comments that belong to an outline."
(cond ((nth 3 state)
(if (python-info-docstring-p state)
font-lock-doc-face
font-lock-string-face))
((save-excursion
(while (and (> (point) (point-min))
(progn (move-beginning-of-line 0)
(eq (char-after) ?\#))))
(forward-line 1)
(looking-at "#\\*+ "))
'default)
(t
font-lock-comment-face)))
สิ่งคือฉันไม่มีเงื่อนงำเกี่ยวกับอินเทอร์เฟซที่
font-lock-syntactic-face-function
ทำงานนอกเหนือจากที่ได้รับโครงสร้างข้อมูลที่ซับซ้อนstate
มีสถานะจุดที่แตกต่างกันและส่งกลับใบหน้า
มีคนอธิบายอินเตอร์เฟซนี้ได้ไหม อาจมีสิ่งที่ดีกว่าหรือไม่?