カラースキームの保存先
ユーザーが作成したカラースキームは、「~/.local/share/gedit/styles」フォルダー内に保存されます。「styles」フォルダーを開くと、以下のように作成したカラースキームのファイルが保存されています。
ファイルの中身はXMLです。
直接編集することもできます。
言語定義ファイルとスタイルスキーム定義ファイルについて
「gedit」のハイライトモードでテキストを強調表示する文字列は、言語定義ファイルとスタイルスキーム定義ファイルによって定義づけられています。言語定義ファイルとは
言語定義ファイルとは、テキストの文字列がどのような意味を持つのかを定義しているファイルのことです。例えばC言語では、「char」は変数の型を指定するキーワードであるとか、「/* ・・・ */」はコメントであるかとか、コンパイラーの構文解析のような意味付けを行います。
同様にHTMLでは、「<div> 」がタグであるとか「<!-- ・・・ -->」はコメントであるかとか、ブラウザーの構文解析のような意味付けを行います。
言語定義ファイルでは文字列の意味付けを行うだけです。
この意味づけされた文字列を、どのように表示するのか、何色で表示するのか、といった情報は持ちません。
言語定義ファイルは、XMLで記述されています。
スタイルスキーム定義ファイル
スタイルスキーム定義ファイルは、言語定義ファイルにより意味づけされた文字列を、どのように表示するのか、何色で表示するのかを定義しているファイルのことです。このスタイルスキーム定義ファイルが、カラースキームになります。
従って「カラースキームエディター」で作成しているカラースキームは、スタイルスキーム定義ファイルということになります。
スタイルスキーム定義ファイルは、XMLで記述されています。
言語定義ファイルの配置場所
言語定義ファイルは、「/usr/share/gtksourceview-3.0/language-specs」フォルダーに配置されています。C言語の言語定義ファイルである「c.lang」を開くと、以下のように「char」がキーワードであると記述されています。
またスタイルの識別子は「type」であることが分かります。
このスタイルの識別子が、「カラースキームエディター」でスタイル一覧に表示されるスタイルになります。
上記は単純な例ですが、C言語の定数値のように予め定められていない文字列を意味づけする場合、正規表現を使用し文字列がどのような意味を持っているのかを定義します。
言語定義とスタイルスキーム定義の関連付けの例
上記で記述したように、言語定義ファイルは文字列を意味づけするものです。スタイルスキーム定義ファイルは、意味づけされた文字列をどのように表示するのかを定義するものです。
これらのファイルがカラースキームエディターでどのように関連付けられているのかを見てみます。
1.強調表示の例
ここでは例として、ハイライトモードを「C」に設定し、以下のように「char」と入力しています。見ての通り「char」が強調表示されています。
上記で記述した通り、スタイルの識別子は「type」です。
2.C言語のスタイル
言語一覧から「C」を選択すると、スタイル一覧に「type」が表示されます。「type」を選択すると、現在のスタイルの設定が表示されます。
スタイルが設定されていません。
従って「char」のスタイルは、「C」で行われていないということになります。
3.デフォルトのスタイル
次に言語一覧から「Default styles」を選択します。スタイル一覧に「type」が表示されるので、「type」を選択します。
以下のようにスタイルが設定されています。
スタイルが設定されています。
「char」が太字で表示され文字色が緑色なのは、この設定が反映されているためです。
4.スタイルを変更してみる
本当に「char」の強調表示が「Default styles」の「type」スタイルの設定によるものなのかを確認するため、試しにスタイルを変更してみます。以下のように文字色を赤に変更してみます。
5.スタイルの反映
以下のように「char」の文字色が赤色になりました。ということは、「char」の強調表示は「Default styles」の「type」スタイルの設定によるものだということが分かります。
6.Cのtypeを変更してみる
「2.」の「C」の「type」を変更してみます。以下のように文字色を青色に設定しました。
7.スタイルの反映
「char」が青色で表示されるようになります。「Default styles」で設定したスタイルは、すべての言語から参照されるデフォルトのスタイルです。
「C」でスタイルが設定されていない場合、「Default styles」で設定したスタイルが使用されます。