# MacのCotEditorでシンタックスカラーリングを定義する

シンタックスカラーリングは書類の文字を特定のルールに沿って異なる色で塗り分ける機能です。典型的な使い方は、プログラムのソースコードでコマンドや変数など単語の文法上の機能によって異なる色をつけることで、プログラムの構造を理解しやすくするものです。そのほかにも、Markdownのような構造化言語の見出しに色を付けたり、使用してはいけない特定の文字を目立たせたりするなど、書類のタイプに合わせて様々な使い方が可能です。

CotEditorでは、シンタックスの文法的な意味のルール付けをシンタックス定義で行い、実際のカラーリングで使う配色はテーマとして定義します。

シンタックスのカラーリングを定義するには、シンタックスエディタの左のリストからカラーリング条件を追加したい要素を選択し、右側のリストに条件を追加します。シンタックスエディタの開き方は「シンタックスを定義する」を参照してください。

## シンタックスカラーリングの要素

CotEditorでは、シンタックスカラーリングでハイライトできる要素の種類が、テーマに対応して既に決められています。それぞれの要素は以下の通りです：

要素 | 説明 | 例
--- | --- | ---
キーワード | プログラミング言語の予約語など | `for`, `while`, `if`
コマンド | プログラミング言語の関数やコマンド | `print`, `filter`, `func()`
タイプ | プログラミング言語の型や構造化言語の見出しなど | `int`, `bool`, `Object`
属性 | 属性や補足情報など | `<html lang="ja">`, `@classmethod`
変数 | プログラミング言語の変数 | `$foo`, `self`
値 | プログラミング言語の固定値 | `Null`, `True`, `False`
数値 | 数値型のデータ | `Int i = 0;`
文字列 | 文字列型のデータ | `String s = "Hello World"`
文字 | 文字型のデータ | `Char c = 'a'`
コメント | プログラム中のコメント | `/* 〜 */`, `# 〜`

ハイライトは最上位の「キーワード」から「コマンド」、「タイプ」、…、と順に実行されます。もし、同一の範囲が複数の要素に一致する場合は、後のカラーリングで上塗りされます。各要素の名前は目安のため、実際には別の文法上の用途を当てることもできます。

## シンタックスカラーリングの設定項目

カラーリングを定義するには、ハイライトをしたい特定の文字列、文字列の開始文字列と終了文字列、もしくは正規表現パターンを、ハイライト条件として各カラーリング要素ごとに登録していきます。

各設定項目は次の通りです。

項目 | 説明
--- | ---
RE | チェックがオンの場合、開始文字列および終了文字列に入力されている文字列を正規表現として扱います（Regular Expressionの略）。
IC | チェックがオンの場合、大文字/小文字を区別しません（Ignore Caseの略）。例えば、開始文字列を「abc」として「IC」にチェックを入れると、「ABC」「abc」「Abc」などに一致します。
開始文字列 | パターンの開始を示す文字列です。この項目は必須です。
終了文字列 | パターンの終了を示す文字列です。この項目は空でも構いません。
説明 | 登録する語句にメモがある場合はこの欄を使用できます。この項目はカラーリングに影響せず、空でも構いません。

このとき:

- 開始文字列に何も入力せず、終了文字列のみ入力されている定義は無視されます。
- 開始文字列・終了文字列には正規表現が使えますが、「両方とも正規表現」または「両方とも通常の文字列」でなければなりません。

## 入力補完候補

「RE」がチェックされておらず終了文字列が入力されていない定義は、入力補完候補としても使われます。

## 関連項目

- シンタックスを定義する
- 正規表現を使う