CFG 语言支持扩展
一个专为 .cfg 配置文件设计的 VSCode 扩展,提供语法高亮、跳转到定义、大纲视图、查找引用功能。
项目背景: 本扩展是 cfggen 策划配置系统 的配套工具,为 cfggen 的配置文件提供完整的 IDE 支持。
✨ 功能特性
🎨 语法高亮
- 结构定义高亮:
struct、interface、table 名称
- 类型标识符高亮:自定义类型名称(非基础类型)
- 外键引用高亮:
->table1、=>table1[field2] 等外键语法
- 元数据关键字高亮:
nullable、mustFill、enumRef 等
- 主键字段高亮:在表定义中的主键字段
🔗 跳转到定义
- 跳转到定义:Ctrl+点击类型名称或外键引用跳转到定义位置
- 多级查找策略:当前接口内 → 当前文件内 → 模块内 → 根目录
📋 大纲视图
- 结构层级导航:显示所有结构定义的层级关系
- 快速定位:点击大纲项直接跳转到对应定义
🔍 查找引用
- 引用查找:查找类型和表的所有引用位置
- 跨文件支持:支持跨文件的引用查找
📁 支持的文件类型
🚀 快速开始
- 安装扩展:在 VSCode 扩展商店中搜索 "cfg-support" 并安装
- 打开 CFG 文件:打开任何
.cfg 文件即可享受语法高亮
- 使用跳转功能:按住 Ctrl 键并点击类型名称跳转到定义
📚 语言特性支持
基础类型
int、float、long、bool、str、text
复杂类型
list<T>:列表类型
map<K,V>:映射类型
- 自定义结构类型
结构定义
struct User {
id: int;
name: str;
}
interface GameData {
struct Item {
id: int;
name: str;
}
}
table player[id] {
id: int;
name: str;
}
外键引用
item: Item ->item.item; // 单体外键
items: list<Item> =>item.item; // 列表外键
complex: Item ->item.item[id]; // 带键的外键
🎯 使用技巧
跳转到定义
- 类型跳转:Ctrl+点击类型名称跳转到其定义
- 外键跳转:Ctrl+点击外键引用跳转到目标表
- 接口内跳转:在接口内部定义的 struct 优先在当前接口内查找
大纲视图
- 结构导航:使用大纲视图快速浏览文件结构
- 层级展示:清晰显示接口、结构、表的层级关系
查找引用
- 引用查找:右键点击类型或表名选择"查找所有引用"
- 跨文件分析:支持分析整个项目的引用关系
🤝 问题反馈
如果您在使用过程中遇到任何问题或有功能建议,请通过以下方式联系我们:
🌟 cfggen 生态系统
本扩展是 cfggen 配置系统生态的一部分,与以下组件协同工作:
- cfggen 核心工具: 配置系统生成器和运行时
- cfgeditor: 基于节点的编辑器和查看器
- 本 VSCode 扩展: 提供 IDE 支持和开发体验
完整的 cfggen 生态系统提供从配置定义到数据读取、数据编辑和浏览、再到代码生成的全链路解决方案。
📄 许可证
MIT License
享受编写 CFG 配置文件的愉快体验! 🎉
| |