GriddyCode Godot 代码编辑器完整指南:Lua 插件与主题定制
【免费下载链接】griddycodeA code editor made with Godot. Code has never been more lit!项目地址: https://gitcode.com/GitHub_Trending/gr/griddycode
GriddyCode 是一个基于 Godot 引擎构建的开源代码编辑器,语法高亮、代码补全和界面主题全部通过 Lua 脚本实现,运行环境以 Linux 为主。它的定位是轻量、可深度定制的编辑器,适合想自己动手改造编辑环境的人。
项目定位:用游戏引擎做的编辑器有什么不同
主流代码编辑器大多构建在成熟的 GUI 框架之上,GriddyCode 则选用 Godot 游戏引擎,界面本质上是一个 2D 游戏场景。这带来两个直接后果:VHS、CRT 这类后处理 shader 和发光效果可以直接用在编辑界面上;同时它也缺少主流编辑器多年打磨过的稳定性。
它的扩展体系不依赖插件市场,而是一批 Lua 文件。往 langs 目录里放一个与文件扩展名同名的 .lua 文件,就等于新增一种语言支持,门槛明显低于编写 VS Code 扩展。
适合人群:想折腾 Godot 项目结构、把编辑器当学习样例的开发者,以及需要一个外观高度可玩的轻量副编辑器的用户。不建议依赖它的补全精度作为唯一生产环境。
核心亮点:三个值得注意的设计
Lua 脚本承担全部扩展
语法高亮与补全逻辑都写在Lua/Plugins/目录,内置 C、C++、Python、JavaScript、Go、Java 等 16 种语言插件。每个 .lua 文件对应一个文件扩展名,用highlight()和highlight_region()声明关键词与区域着色。补全部分需要自行实现detect_functions()与detect_variables(),接口接收文件内容和光标位置,写一个新语言的基础补全通常几十行代码即可。局限在于highlight_region()不支持正则,只能按起止符号匹配。
主题文件只有十几行
Lua/Themes/内置 16 个主题,覆盖 Catppuccin 四色、GitHub 深浅色、Nord、Monokai、Tokyo Night、Rose Pine 等。主题文件只做两件事:set_keywords()定义语法颜色,set_gui()定义背景、选区、光标等颜色。需要提醒的是,浅色主题必须调用disable_glow(),否则 Godot 的 glow 效果可能把整屏刷白,这是项目已知的兼容问题。
编辑器带"娱乐"属性
它内置 VHS & CRT shader、随机吐槽风注释菜单(CTRL+L 触发)、背景音乐和 Discord 状态集成,更像个人终端而不是纯效率工具。项目 README 也坦诚列出已知缺陷:约 1600 行的文件长度上限、部分 shader 在个别主题下变白。把它当学习项目或第二编辑器,心态会更合适。
安装与首次运行:5 分钟跑通编辑器
先克隆仓库,然后用 Godot Engine v4.2 打开project.godot并运行:
git clone https://gitcode.com/GitHub_Trending/gr/griddycode
系统与注意事项合并如下:
- 主要在 Linux 上测试,README 明确表示不支持 macOS
- 建议安装 Nerdfont 字体,否则文件选择器图标会显示为方框
- 默认窗口为 1920x1080,小屏会按比例缩放
- 首次运行按 CTRL+I 查看内置快速入门
- 脚本修改不会热加载:需要切换到不同扩展名的文件或重启编辑器
功能实操:先做这三件事
找到脚本存放目录
Lua 脚本不在仓库目录,运行时从用户数据目录加载。Linux 下位于~/.local/share/godot/app_userdata/Bussin GriddyCode,其中langs子目录放语言插件,themes子目录放主题。仓库内的Lua/目录是随包内置版本,自定义脚本请放用户目录。
写第一个语言插件
在 langs 目录新建toml.lua(文件名即扩展名),声明高亮规则:
highlight("true", "binary") highlight("=", "operator") highlight_region('"', '"', "string")颜色名可选reserved、string、binary、comments、function等。若要补全,再实现detect_functions()返回字符串数组,输入时自动弹出。
做一个自定义主题
themes 目录新建任意 .lua 文件,设置颜色即可生效:
set_keywords("reserved", "#ff00ff") set_gui("background_color", "#1e1e2e") disable_glow()set_gui()的第二参数支持current_line_color、selection_color、font_color、caret_color等属性;色值必须是合法十六进制,否则默认回退为红色。
常用快捷键
| 快捷键 | 功能 |
|---|---|
| CTRL + I | 查看内置介绍 |
| CTRL + , | 打开设置面板 |
| CTRL + L | 打开评论菜单 |
| CTRL + T | 切换主题 |
| CTRL + O | 打开文件对话框 |
技巧与 FAQ
问:改完 Lua 脚本为什么不生效?答:脚本只在切换到不同扩展名的文件、或重启 GriddyCode 时重新加载。切一下文件类型即可验证修改。
问:文件选择器图标全是方框?答:系统缺少 Nerdfont 字体,安装任一款 Nerd Font 后重启编辑器。
问:打开大文件界面会出问题吗?答:超过约 1600 行后滚动会异常、视角可能飞出屏幕,属已知中优先级问题。大文件建议仍用主流编辑器。
问:浅色主题整屏发白怎么办?答:Godot 的 glow 对浅色背景渲染异常,在主题文件中加一行disable_glow()即可。
问:能当主力编辑器吗?答:常用语言在内置列表内、文件不大时日常够用;但补全深度、导航精度与稳定性不及成熟编辑器,建议保留主力工具,把它当轻量补充。
参与项目
开发前需安装 Godot Engine v4.2 并在本地验证改动,Lua 插件、主题和核心功能均接受 Pull Request。待办清单见仓库 README 的 "Current bugs/needed features" 一节,按高、中、低优先级排列,可直接认领。
写在最后
GriddyCode 的价值不在功能完整度,而在于整套编辑器被拆成了可读的 Godot 场景加 Lua 接口,改造成本很低。如果目标是理解"代码编辑器如何从零搭起来",建议先克隆仓库跑起来,再照着内置主题改一个自己的配色文件,这是最短的上手路径。
【免费下载链接】griddycodeA code editor made with Godot. Code has never been more lit!项目地址: https://gitcode.com/GitHub_Trending/gr/griddycode
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考