シンタックスハイライト
2つ以上の言語に対応するエディタでは、シンタックスハイライトを正しくおこなうために、ユーザーがテキストの言語を指定するか、エディタがファイルの拡張子や内容から言語を自動的に判別する必要がある。
複数の言語のシンタックスハイライトをサポートする方法として、言語ごとにシンタックスハイライトの規則を独立して保持する方式がある。この方式には複数の言語に対応したエディタの作成がある程度は簡単になるという利点があるが、潜在的な限界もある。
例えば、ユーザーによっては以下のような要求もありうる。
複数の言語を含むテキストを取り扱いたい。例えば JavaScript コードを埋め込んだHTMLファイルなど。
エディタが対応していない言語のテキストを取り扱いたい。例えば、マイナーな言語や擬似コードなど。
1985年に Live Parsing Editor(LEXXやLPEXと呼ばれる)がオックスフォード英語辞典の電子化のために開発された。これが色付きのシンタックスハイライトを利用したおそらく最初のエディタであろう。その Live parsing 機能はユーザーが文章やプログラム、データファイル用にパーサを追加することができた。
ほとんどのエディタは、言語ごとにパーサを実装するといった複雑で面倒な方法はとらず、パターンマッチングによるヒューリスティクスに基づいてシンタックスハイライトを行うので、その結果は完全に正確というわけにはいかない。さらに、パターンマッチングアルゴリズムによっては、ある種の構文のハイライト処理が非常に遅いものとなってしまう。常にファイル全体を解析するのではなく、表示する部分のみを解析することでこの問題を解決するエディタもある。