Skip to content

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 スクリプトを直接変更した場合、変更を反映するにはリソースファイルの再生成が必要になる場合があります。配色をより明確に管理するため、リソースファイル方式を優先することを推奨します。

Released under BSD3-Clause License.