書類を開いたとき、CotEditorは自動でその書類の種類を判定して適切なシンタックスを適用します。
CotEditorは、各シンタックス定義内で設定された「ファイル関連付け」の情報を統合し、開いた書類にどのシンタックスを適用するかを決定します。
CotEditorは以下の順序で適切なシンタックスを走査します:
ファイル名:
CotEditorはまず、ファイル名全体を元に対応するシンタックスを探します。
以下に例を挙げます:
.htaccess → Apache
Makefile → Makefile
ファイル名拡張子:
対応するファイル名がないときは、ファイル名拡張子から対応するシンタックスを探します。このとき大文字/小文字は基本的に無視されますが、対応するシンタックスが複数あるときは拡張子の大文字/小文字が一致しているものを優先します。
以下に例を挙げます:
.html → HTML
.hTmL → HTML
.py → Python
書類内の#!ヘッダー:
対応するファイル名・拡張子がないとき、書類内の最初の行が#!(shebang)ヘッダーであれば、それを手掛かりにシンタックスを探します。この走査ではシンタックス定義のファイル関連付けの「インタープリタ」の設定が用いられます。#!直後のパスの最後の語句、またはパスがenvのときはその次の語句が、インタープリタ名として検索語句に使用されます。
以下に例を挙げます:
#!/usr/bin/perl → Perl (インタープリタ名: perl)
#!/usr/bin/env python3 → Python (インタープリタ名: python3)
XML宣言:
対応するファイル名・拡張子・インタープリタがないとき、書類内容がXML宣言で始まっていたら、自動的にXMLシンタックスを適用します。
以下に例を挙げます:
<?xml version="1.0" encoding="utf-8"?> → XML
なし:
該当するシンタックスが何もないときは、シンタックスは「なし」に設定されます。
同じ段階で複数のシンタックスが一致した場合は、内蔵シンタックスよりカスタムシンタックスが優先されます。それでも候補が複数ある場合は、その段階で優先順の先頭にあるシンタックスが使用されます。
シンタックスのファイル関連付けルールを定義するには、シンタックスエディタの左のリストから「ファイル関連付け」を選択し、右側のリストに拡張子やファイル名、インタープリタを追加します。シンタックスエディタの開き方は、シンタックスを定義するを参照してください。
内蔵されているシンタックスにファイル関連付けのコンフリクトはありませんが、独自にシンタックスを追加したときや内蔵されているシンタックスのファイル関連付けを変更したときは、コンフリクトが起こることがあります。現在ファイル関連付けのコンフリクトが発生しているかどうかは、「フォーマット」設定の「利用可能なシンタックス」リストのアクションポップアップメニューにある「ファイル関連付けのコンフリクトを表示」から確認できます。この項目が選択不可能になっているときは、ファイル関連付けのコンフリクトは発生していません。
書類を期待するシンタックスで開くことができているかぎりは、ファイル関連付けのコンフリクトがあっても放置しておいてかまいません。