https://github.com/cuihairu/kode
KBEngine Development Environment
https://github.com/cuihairu/kode
kbengine
Last synced: 17 days ago
JSON representation
KBEngine Development Environment
- Host: GitHub
- URL: https://github.com/cuihairu/kode
- Owner: cuihairu
- License: apache-2.0
- Created: 2026-03-25T05:01:45.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-24T03:47:19.000Z (2 months ago)
- Last Synced: 2026-04-24T05:33:03.194Z (2 months ago)
- Topics: kbengine
- Language: TypeScript
- Homepage: https://cuihairu.github.io/kode/
- Size: 521 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Kode - KBEngine Development Environment
[](LICENSE)
[](https://code.visualstudio.com/)
[](https://www.typescriptlang.org/)
> **Kode** (KBEngine IDE) - 面向 KBEngine 的 VS Code 开发辅助扩展
## 📖 简介
**Kode** 是一个为 [KBEngine](https://github.com/kbengine/kbengine) 游戏服务器框架提供语言支持、导航和辅助面板的 VSCode 扩展。
KBEngine 是一个开源的 MMO 游戏服务器框架,采用独特的分布式架构。Kode 为 KBEngine 的实体定义(`.def`)文件提供专业的开发工具支持。
## ✨ 核心功能
### 🎨 语法高亮
- ✅ 完整的 `.def` 文件语法高亮
- ✅ 源码对齐的基础/容器/细节语义高亮
- ✅ 容器类型(ARRAY, FIXED_DICT, TUPLE)高亮
- ✅ 源码对齐的 Flags / DetailLevel 高亮
### 💡 智能提示 (IntelliSense)
- ✅ 类型自动补全
- ✅ Flags 智能提示
- ✅ DetailLevel 提示
- ✅ XML 标签提示
- ✅ **钩子方法自动补全 (30+ hooks)**
### 📝 代码片段
- ✅ 17 个常用代码模板
- ✅ 一键插入属性定义
- ✅ 快速生成方法定义
### 📚 悬停文档
- ✅ 类型详细说明
- ✅ Flags 用途解释
- ✅ 使用建议
- ✅ **钩子完整文档** (调用时机、函数签名、使用示例、源码位置)
### 🔍 跳转定义
- ✅ 从 `entities.xml` 跳转到 `.def` 文件
- ✅ 快速定位实体定义
### ✅ 语法检查
- ✅ 实时语法验证
- ✅ 源码可证实的 Flags / DetailLevel / 必填字段校验
- ✅ 类型有效性检查
### 🌲 实体浏览器
- ✅ 侧边栏显示所有实体
- ✅ 实体类型标识(Cell/Base/Client)
- ✅ 快速导航
### 🔗 钩子系统 (Hooks System)
- ✅ 30+ KBEngine 钩子支持
- ✅ 12 个分类:生命周期、网络、数据库、移动、空间、视野、位置、传送、陷阱、Cell、脚本、系统
- ✅ 完整的钩子文档和使用示例
- ✅ 源码位置标注
### 🔥 热更新支持
- ✅ 热更新代码片段(4个)
- ✅ KBEngine.reloadScript() 智能提示
- ✅ importlib.reload() Python 脚本热更新
- ✅ 重载相关悬停文档和使用示例
### 🖥️ 服务器管理
- ✅ 10个组件启动/停止控制
- ✅ 实时状态显示(停止/启动中/运行中)
- ✅ 进程 PID 显示
- ✅ 组件独立日志输出
- ✅ 状态栏显示运行数量
- ✅ 支持自定义路径和环境变量
### 📊 日志查看集成
- ✅ logger 连接入口与状态说明
- ✅ WebView 可视化界面
- ✅ 多级过滤(级别、组件、关键词)
- ✅ 正则表达式搜索
- ✅ 日志导出(txt/log/json 格式)
- ✅ 彩色日志级别显示
当前 logger 协议适配尚未完成,扩展会明确提示该能力暂不支持,而不是假装已经接通官方协议。
### 🐛 嵌入式 Python 调试支持
- ✅ 自定义调试配置(.kbengine/debug.json)
- ✅ 组件特定调试设置
- ✅ 自动生成 launch.json
- ✅ 通过 telnet 提示引导开启调试
- ✅ 按 PID 附加到 KBEngine 组件进程
- ✅ 路径映射配置
### 📈 监控面板
- ✅ 基于 machine + watcher 的运行态监控
- ✅ CPU、内存、实体数量与已核实 watcher 指标展示
- ✅ 系统概览卡片
- ✅ 组件详细指标卡片
- ✅ 可视化图表(柱状图、曲线图)
- ✅ 数据导出(JSON 格式)
监控数据依赖 `machine` 发现和 `watcher` 查询共同提供。若 watcher 无响应,面板只保留 machine 返回的基础状态,不再把缺失的 watcher 指标伪装成完整遥测。
### 🔗 Python ↔ Def 双向跳转
- ✅ 实体定义映射管理器
- ✅ 从生成的 Python 文件跳转回 .def 定义
- ✅ Python 文件智能提示(自动补全属性和方法)
- ✅ 自动扫描和建立映射关系
- ✅ 支持多个 Python 生成路径配置
### 📊 实体依赖关系图
- ✅ 自动分析实体继承关系
- ✅ 可视化实体依赖图(使用 Mermaid.js)
- ✅ 显示 Base/Cell/Client 实体类型
- ✅ 统计信息面板(实体数量、最大深度、最常引用实体)
- ✅ 从图跳转到实体定义文件
- ✅ 支持导出图表(PNG/SVG 格式)
### 🛠️ 代码生成器
- ✅ 实体创建向导(逐步引导)
- ✅ 5 个预定义模板(账号、角色、NPC、物品、空实体)
- ✅ 自动生成 .def 文件(符合 KBEngine 格式)
- ✅ 自动生成 Python 文件(包含钩子方法)
- ✅ 自动在 entities.xml 中注册实体
- ✅ 支持自定义属性和方法定义
- ✅ 可配置输出路径和选项
## 🚀 安装
### 从 VSCode Marketplace 安装
```bash
code --install-extension cuihairu.kode
```
或在 VSCode 中搜索 `Kode - KBEngine Development Environment`
### 手动安装
```bash
# 克隆仓库
git clone https://github.com/cuihairu/kode.git
# 安装依赖
cd kode
pnpm install
# 编译
pnpm run compile
# 打包
pnpm run package
# 安装
code --install-extension kode-0.1.0.vsix
```
## 📘 文档
- 配置与使用文档位于 [docs/](./docs/)
- 配置说明重点见 [docs/guide/configuration.md](./docs/guide/configuration.md)
- 本项目已添加 VitePress 文档站点,可通过 `pnpm run docs:dev` 本地预览
## 🔖 版本策略
当前阶段默认沿用 `0.1.x` 作为修复与完善版本线。
- 修复问题、补充文档、增强现有功能:继续使用 `0.1.x`
- 只有在出现明确的新阶段功能升级时,才考虑提升到 `0.2.0`
## 📸 截图
### 语法高亮和智能提示
截图素材尚未整理完成。当前可通过 `F5` 启动扩展开发主机,在 `.def` 文件中直接预览语法高亮、智能提示、悬停文档与诊断效果。
### 实体浏览器
实体浏览器与服务器控制面板的界面截图将随文档资源一并补充;现阶段建议结合 [docs/](./docs/) 中的功能说明和本地调试窗口进行验证。
## 🛠️ 开发
### 环境要求
- Node.js `^20.19.0 || >=22.12.0`(推荐直接使用 `.nvmrc` 中的版本)
- Git
- VSCode 1.50.0 或更高版本
### 开发步骤
```bash
# 1. 克隆仓库
git clone git@github.com:cuihairu/kode.git
# 2. 安装依赖
cd kode
pnpm install
# 3. 在 VSCode 中打开项目
code .
# 4. 按 F5 启动调试
# 会打开一个新的 VSCode 窗口(扩展开发主机)
# 5. 在新窗口中测试功能
```
### 项目结构
```
kode/
├── src/
│ ├── extension.ts # 主入口文件
│ ├── languageProviders.ts # 语言能力
│ ├── explorerProviders.ts # 树视图与导航
│ ├── kbengineMetadata.ts # KBEngine 元数据
│ └── ...
├── syntaxes/
│ └── kbengine.tmLanguage.json # 语法高亮规则
├── snippets/
│ └── kbengine.json # 代码片段
├── resources/
│ └── docs/ # 项目文档
├── .vscode/
│ └── launch.json # 调试配置
├── package.json # 扩展配置
├── tsconfig.json # TypeScript 配置
└── README.md # 本文件
```
### 测试
```bash
# 运行测试
pnpm test
# 编译
pnpm run compile
# 监听模式编译
pnpm run watch
# 文档
pnpm run docs:dev
```
## 📖 使用文档
详细的使用文档和开发指南,请查看:
- [VitePress 文档](./docs/) - 新版文档入口
- [设计文档](./resources/docs/vscode-extension-design.md) - 完整的设计方案
- [快速开始](./resources/docs/vscode-extension-summary.md) - 开发者指南
- [命名方案](./resources/docs/plugin-name-suggestions.md) - 品牌设计
## 🤝 贡献
欢迎贡献代码!请查看 [CONTRIBUTING.md](./CONTRIBUTING.md) 了解详情。
### 贡献指南
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## 📝 许可证
本项目采用 Apache-2.0 许可证 - 详见 [LICENSE](LICENSE) 文件
## 🙏 致谢
- [KBEngine](https://github.com/kbengine/kbengine) - 优秀的游戏服务器框架
- [VS Code](https://github.com/microsoft/vscode) - 强大的代码编辑器
- 所有贡献者
## 📞 联系方式
- GitHub Issues: [https://github.com/cuihairu/kode/issues](https://github.com/cuihairu/kode/issues)
- Email: cuihairu@gmail.com
## 🌟 Star History
如果这个项目对你有帮助,请给一个 Star ⭐
---
**Kode** - 让 KBEngine 开发更高效! 🚀