構文テーブルのしくみを理解しようとしていますが、最小限のメジャーモードでは何も強調されません。
私は次のelispを書きました。
(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)
ただし、ファイルが与えられた場合:
# foo
# bar
baz
でメジャーモードをアクティブにしてM-x my-yaml-mode
も、強調表示されません。C-u C-x =
は、面が適用されていないことを示しています。
M-;
は構文テーブルcomment-dwim
ではcomment-start
なくを使用するnewcomment.elからバインドされます。AIUI。
うーん、確かに、ごめんなさい。代わりに、ポイントをaに置いて
—
T.ヴァーロン2014
#
を押すC-u C-x =
と、出力に線が含まれますsyntax: < which means: comment
。
確かにそうです!では、構文テーブルが正しく適用されている場合、なぜ強調表示がないのですか?
—
Wilfred Hughes 14
コードでテストした後
—
T.ヴァーロン2014
font-lock-mode
は、my-yaml-mode
バッファをオンにするだけです。:)
M-;
正しく挿入#
?はいの場合、構文テーブルが適用されます。フォントロックの仕様を調べて、構文を強調表示する必要があります。