KND_KsHighlighter 编辑器语法高亮
前言
语法高亮是编辑器的重要组成部分,它能帮助开发者直观地识别代码结构,从而提升编写效率和可读性。KND_KsHighlighter 是基于 Godot 引擎的 SyntaxHighlighter 实现的一款高亮器,专门用于 KS 脚本。它将高亮规则集中定义在单个脚本中,使得自定义和扩展变得非常灵活——你可以轻松调整现有规则,也可以添加全新的配色方案。
基本实现
在 KND_KsHighlighter 中,高亮规则存储为一个数组,每个数组元素都是一个字典,包含两个键:
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)
}高亮器会按数组顺序依次匹配,后应用的规则可能覆盖先前的匹配,因此规则的顺序至关重要(建议将通用命令放在前面,字符串和注释放在后面,以保证覆盖效果合理)。
自定义配色方案
你可以通过两种方式为编辑器应用自定义高亮:
方式一:修改资源文件(推荐)
默认的配色方案以资源文件形式存储在:
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"))方式二:动态创建实例
你也可以在代码中直接创建一个新的 KND_KsHighlighter 实例,并为其设置自定义规则(例如通过修改脚本中的 highlight_rules):
gdscript
set_syntax_highlighter(KND_KsHighlighter.new())注意:如果直接修改了
KND_KsHighlighter.gd脚本,可能需要重新生成资源文件才能使更改生效。推荐优先使用资源文件方式,以便更清晰地管理配色。