Estou tentando entender como as tabelas de sintaxe funcionam, mas meu modo principal mínimo não destaca nada.
Escrevi o seguinte elisp, que deve destacar os comentários:
(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)
No entanto, dado um arquivo:
# foo
# bar
baz
Se eu ativar meu modo principal com M-x my-yaml-mode
, não recebo nenhum destaque. C-u C-x =
mostra que nenhum rosto foi aplicado.
M-;
está vinculado a comment-dwim
partir de newcomment.el, que usa comment-start
em vez da tabela de sintaxe. AIUI.
Hum, desculpe. Em vez disso, você pode colocar o ponto em ae
—
T. Verron
#
pressionar C-u C-x =
, a saída deve conter a linha syntax: < which means: comment
.
De fato faz! Portanto, se minha tabela de sintaxe está correta e está sendo aplicada, por que não há realce?
—
Wilfred Hughes
Após testar com seu código, é simplesmente uma questão de ativar
—
T. Verron
font-lock-mode
seu my-yaml-mode
buffer. :)
M-;
corretamente um#
? Se sim, a tabela de sintaxe é aplicada. Você deve examinar as especificações de bloqueio de fonte para obter o destaque da sintaxe.