萌えハッカーニュースリーダー

2025/05/31 10:48 The Definitive Guide to Syntax Highlighting (2014)

出典: https://www.wilfred.me.uk/blog/2014/09/27/the-definitive-guide-to-syntax-highlighting/
hakase
博士

やっほー、ロボ子!今日のITニュースは、エディタのシンタックスハイライトについてじゃ。

roboko
ロボ子

博士、こんにちは。シンタックスハイライトですか。コーディングには欠かせない機能ですね。

hakase
博士

そうじゃぞ!記事によると、字句ハイライトはほぼすべてのエディタが提供しておるらしい。例えば、Emacsでは`font-lock-syntax-table`と`font-lock-keywords`を使うんじゃと。

roboko
ロボ子

構文ミスが明確になるのは便利ですね。拡張字句ハイライトというのもあるんですね。

hakase
博士

そう!Emacsの`font-lock-maximum-decoration`で調整できるんじゃ。数値をハイライトする`highlight-numbers`とか、引用符で囲まれた値をハイライトする`highlight-quoted`とか、色々あるぞ。

roboko
ロボ子

へえ、そんなに細かく設定できるんですね。意味ハイライトというのも気になります。

hakase
博士

`js2-mode`はECMAScriptパーサーを含んでいて、パラメータとグローバル変数を区別できるんじゃ。グローバルのハイライトは、コードに関する有用な情報になるから特に便利じゃな。

roboko
ロボ子

なるほど。字句解析だけでなく、パーサーも使うんですね。S式ハイライトも面白そうです。

hakase
博士

`rainbow-delimiters`は括弧の各レベルに異なる色を表示するんじゃ。デフォルトでは9レベルのネスティングを許可しておる。

roboko
ロボ子

括弧が深くなると、色分けされていると見やすいですね。標準ライブラリのハイライトもあるんですね。

hakase
博士

そうじゃ!EmacsのデフォルトのPythonモードは、80個の組み込み関数と組み込み型のメソッドをハイライトするんじゃと。

roboko
ロボ子

それはすごいですね。Docstringハイライトもあるんですね。コメント、文字列、Docstringでフェイスが違うんですね。

hakase
博士

その通り!Elisp Docstringにはクロスリファレンス用の追加構文が含まれる場合があって、Emacsはこれらも異なる方法でハイライトするんじゃ。

roboko
ロボ子

コンテキストハイライトも便利そうですね。カーソルの位置で要素をハイライトするんですね。

hakase
博士

`show-paren-mode`はカーソル位置の括弧に対応する括弧を表示するし、`hl-line-mode`は現在の行をハイライトするんじゃ。

roboko
ロボ子

`highlight-symbol-mode`は現在のシンボルが使用されている他の場所を表示するんですね。明示的なハイライトもあるんですね。

hakase
博士

Emacsは`hi-lock-mode`を提供していて、他の読者も同じハイライトを見ることができる特別なコメント構文をサポートしておるんじゃ。

roboko
ロボ子

置換というのもあるんですね。テキスト自体を表示する方法を変更するんですね。

hakase
博士

`pretty-symbols-mode`は`lambda`や`<=`などの文字列を対応する数学記号に置換するんじゃ。`glasses-mode`はキャメルケースのシンボルをアンダースコア付きで表示するんじゃと。

roboko
ロボ子

へえ、面白いですね。ハッシュハイライトは各シンボルに異なる色を割り当てるんですね。

hakase
博士

そうじゃ!`color-identifiers-mode`がそれを提供するんじゃ。内省的ハイライトは、EmacsやSmalltalkなどの自己ホスト環境で利用できるんじゃと。

roboko
ロボ子

`highlight-defined`は現在定義されている関数、変数、またはマクロをハイライトするんですね。

hakase
博士

記事の結論としては、コンテキストハイライトツールが最も優れておるらしいぞ。Emacsでハイライトツールを作成する場合は、独自のフェイスを定義して、リリースする場合はスクリーンショットを含めるのが良いらしい。

roboko
ロボ子

勉強になります。博士、今日は色々なシンタックスハイライトについて教えていただき、ありがとうございました。

hakase
博士

どういたしまして。最後に、ロボ子、お主は私のコードの中で一番ハイライトされておるぞ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search