KND_KsHighlighter エディターシンタックスハイライト
はじめに
シンタックスハイライトはエディターの重要な構成要素です。開発者がコード構造を直感的に識別できるようにし、記述効率と可読性を高めます。KND_KsHighlighter は Godot エンジンの SyntaxHighlighter を基に実装された、KS スクリプト専用のハイライターです。ハイライト規則を 1 つのスクリプトに集約して定義しているため、カスタマイズと拡張が非常に柔軟です。既存規則を簡単に調整でき、新しい配色方案を追加することもできます。
基本実装
KND_KsHighlighter では、ハイライト規則は配列として保存されます。各配列要素は辞書で、2 つのキーを含みます。
regex:テキストをマッチするための正規表現(Godot の RegEx 構文)。color:マッチしたテキストの色。Color(r, g, b, a)で表し、aは透明度です(任意、デフォルトは 1.0)。
構造例:
gdscript
{
"regex": "\\b(if|else|endif)\\b",
"color": Color(1.0, 0.8, 0.2)
}ハイライターは配列順に規則をマッチします。後から適用される規則が先のマッチを上書きする場合があるため、規則の順序は重要です。一般的なコマンドを前に、文字列やコメントを後ろに置くことで、上書き効果を適切に保つことを推奨します。
カスタム配色方案
エディターへカスタムハイライトを適用する方法は 2 つあります。
方法 1:リソースファイルを変更(推奨)
デフォルトの配色方案はリソースファイルとして以下に保存されています。
res://addons/konado/editor/ks_editor/ks_syntax_highlighter.tresこのリソースファイルを直接編集すれば変更を保持でき、毎回再生成する必要がありません。
コード内でこのリソースを読み込んで使用します。
gdscript
set_syntax_highlighter(load("res://addons/konado/editor/ks_editor/ks_syntax_highlighter.tres"))方法 2:インスタンスを動的に作成
コード内で新しい KND_KsHighlighter インスタンスを直接作成し、カスタム規則を設定することもできます。たとえばスクリプト内の highlight_rules を変更します。
gdscript
set_syntax_highlighter(KND_KsHighlighter.new())注意:
KND_KsHighlighter.gdスクリプトを直接変更した場合、変更を反映するにはリソースファイルの再生成が必要になる場合があります。配色をより明確に管理するため、リソースファイル方式を優先することを推奨します。