Tôi đang cố gắng hiểu cách các bảng cú pháp hoạt động, nhưng chế độ chính tối thiểu của tôi không làm nổi bật bất cứ điều gì.
Tôi đã viết elisp sau, được cho là để làm nổi bật các bình luận:
(defconst my-yaml-mode-syntax-table
(let ((table (make-syntax-table)))
(modify-syntax-entry ?# "<" table)
(modify-syntax-entry ?\n ">" table)
table)
"Syntax table for `my-yaml-mode'.")
(define-derived-mode my-yaml-mode fundamental-mode "My YAML"
"testing"
:syntax-table my-yaml-mode-syntax-table)
Tuy nhiên, đưa ra một tập tin:
# foo
# bar
baz
Nếu tôi kích hoạt chế độ chính của mình với M-x my-yaml-mode
, tôi sẽ không nhận được bất kỳ tô sáng nào. C-u C-x =
cho thấy rằng không có khuôn mặt đã được áp dụng.
M-;
được ràng buộc comment-dwim
từ newcomment.el, sử dụng comment-start
chứ không phải bảng cú pháp. AIUI.
#
và nhấn C-u C-x =
, đầu ra sẽ chứa dòng syntax: < which means: comment
.
font-lock-mode
trong my-yaml-mode
bộ đệm của bạn . :)
M-;
chèn đúng#
không? Nếu có, bảng cú pháp được áp dụng. Bạn nên xem xét các thông số kỹ thuật khóa phông chữ để có được tô sáng cú pháp.