Godot 内置 KonadoScript 编辑器
启用 Konado 插件后,在文件系统面板中双击 .ks 文件,会像打开 .gd 文件一样进入 Godot 的脚本工作区。KonadoScript 使用 Godot 原生代码编辑器和文档标签,不再占用底部 Dock。
编辑能力
- 使用 Godot 脚本文档标签同时编辑多个
.ks、.gd和其他脚本 - 编辑
.ks时,左上脚本列表会切换为组件/指令树;首次打开时组件区与分支区的高度默认为 2:1,标题栏右侧的滑动开关可展开或折叠全部分组,折叠后保留最外层分类,选择条目即可插入对应语句;左下成员大纲仍用于分支跳转 - “在线文档”会根据编辑器语言打开
2.4 LTS或latest文档;编辑.ks时会隐藏不支持 KonadoScript 的 Godot API 帮助搜索,切换到其他脚本语言后恢复 Godot 原有界面 - 当前剧本存在语言变体时,“在线文档”右侧会显示语言下拉列表,可在“默认”和已发现的本地化剧本之间直接切换
- 由 Godot 统一处理撤销重做、未保存状态、外部修改和关闭确认
- 直接使用脚本编辑器的查找替换、跳转行、缩放、书签和快捷键
- 在文件系统的“新建”菜单中直接创建带有有效初始内容的 KonadoScript
- 将
branch声明显示在成员大纲中;分支、变量和信号均支持转到定义、查找引用及安全重命名 - 按住 Ctrl(macOS 为 Command)点击背景、演员、角色状态、动作、BGM、音效、语音、镜头配置或
jump路径,可直接打开实际场景、资源或目标 KonadoScript;存在多个目标时会显示选择列表 - 悬停指令或资源标识符可查看签名、用途、解析路径和未解析状态,只有确实存在目标的内容才会显示可点击下划线
- 右键菜单提供文档或选区格式化、快速修复、转到定义、查找引用和安全重命名;跨文件资源重命名会先显示变更预览
- 根据条件块和全屏文本块自动缩进,并遵循 Godot 的缩进设置
- 保存时写回原始
.ks,并刷新由资源加载器编译的运行时KND_Shot
高亮与补全
KND_KsHighlighter 基于 Godot 的 EditorSyntaxHighlighter 实现,并在插件启用时注册到脚本编辑器。高亮和代码补全共同读取 KS_LanguageCatalog,合法关键字以解析器中的 KS_Token.KEYWORDS 为准。自动化测试会检查二者是否一致。
补全除了指令、子命令和可插入语句模板,还会显示参数签名,并从项目资源中识别 KonadoScript 路径、演员、角色状态、动作、背景、音频和镜头;角色状态与自定义动作会按当前演员过滤,对话语音补全也能正确处理含空格的引号文本。当前文档中的分支、变量和信号会即时纳入建议。高亮规则只在首次使用时编译,并且每行只记录颜色变化的位置。
默认高亮资源位于:
res://addons/konado/editor/ks_editor/highlighter.tres其他 CodeEdit 也可以直接使用高亮器:
set_syntax_highlighter(KND_KsHighlighter.new())实时诊断
停止输入片刻后,Godot 会通过 KonadoScript 语言桥接层执行词法、语法和语义分析,但不会生成运行时 KND_Shot。错误和警告会显示在对应代码行及脚本编辑器内置的问题面板中,并根据 Godot 编辑器语言使用中文或英文。分析器会一次报告多行独立错误,并检查多余参数、错误的数值或布尔值、无效跳转路径、未知资源 ID、缺失目标文件、演员生命周期和本地化剧本结构;错误输入不会让实时检查停滞。
悬停错误范围会显示宽高随内容自适应的诊断卡片。每条诊断最多提供三个按可能性排序的“尝试”方案;需要用户判断的候选项不会被“应用全部安全快速修复”自动选择。无法自动修复的问题会提供资源配置或文档入口。修复会作为一次可撤销操作应用,并保留光标、选择区、多光标、折叠和滚动位置。
点击问题即可跳转到相关位置。即使现有文件含有语法错误,也仍可在脚本编辑器中打开和修复;保存后资源加载器会重新执行正式编译,因此实时诊断不能替代最终加载结果。
运行时调试
可使用 Godot 的断点控制 KonadoScript 执行。运行到断点时,调试器会打开对应 .ks 行,并显示当前镜头、节点、持久变量和临时变量;调试页提供继续、单步和“在下一行暂停”操作。发布导出不启用编辑器调试会话。
快捷键
| 功能 | Windows / Linux | macOS |
|---|---|---|
| 保存 | Ctrl+S | Command+S |
| 关闭当前标签 | Ctrl+W | Command+W |
| 查找 | Ctrl+F | Command+F |
| 查找与替换 | Ctrl+H | Command+Option+F |
| 跳转到行 | Ctrl+L | Command+L |