gforth.el には、カスタム・ソース・ハイライティング・エンジンが付属しています。 ファイルを forth-mode
で開くと、 そのファイルは完全にパースされ、 キーワードやコメントや文字列などに face を割り当てます。 ファイルを編集している間、
変更されたリージョンはその場(on-the-fly)でパース・更新されます。
Emacs の変数 ‘forth-hilight-level’ を使用して、 装飾レベルを 0 (まったく強調表示なし) から 3 (デフォルト) に変更します。 強調表示レベルを 0 に設定した場合でも、 パーサーはバックグラウンドで動作し、 テキストの領域が「コンパイル」(compiled)されているか「解釈」(interpreted)されているかに関する情報を収集します。 これらの情報は、 自動インデントが適切に機能するために必要です。 コンピュータが遅すぎてパース処理できない場合は、 Emacs の変数 ‘forth-disable-parser’ を非 nil に設定します。 ただし、 これは自動インデント・エンジンのスマートさに影響します。
しばしば Forth のソース・コードでは、 強調表示する必要がある新しい機能として、 新しい制御構造や定義ワードなどが定義される場合があります。 変数
‘forth-custom-words’ を使用して、 forth-mode
で追加のワードや構造を強調表示させることができます。
詳細については、‘forth-words’ の docstring を参照してください(Emacs では、C-h v out-words
と入力します)。
‘forth-custom-words’ は .emacs.d/init.el ファイル内でカスタマイズすることを目的としています。 ファイル固有の方法でハイライトをカスタマイズするには、 あなたのソース・ファイルの最後のEmacsローカル変数セクションで ‘forth-local-words’ を設定します(see Variables in Emacs Manual)。
Example:
0 [IF] Local Variables: forth-local-words: ((("t:") definition-starter (font-lock-keyword-face . 1) "[ \t\n]" t name (font-lock-function-name-face . 3)) ((";t") definition-ender (font-lock-keyword-face . 1))) End: [THEN]