SysY+ Language Support
一个强大的 VSCode 扩展,为 SysY+ 编程语言提供完整的语言服务器功能。
🌟 主要功能
✨ 语法高亮
- 完整的 SysY+ 语法高亮支持
- 关键字、操作符、字符串、注释的精准着色
- 函数、变量、结构体的区分显示
🔍 智能错误检测
- 实时语法检查 - 输入时自动检测语法错误
- 中文字符检测 - 识别并提示非 ASCII 字符错误
- 变量名检查 - 检测关键字冲突和无效标识符
- 变量重定义检测 - 防止重复声明变量
- 未定义变量检测 - 识别未声明的变量使用
- 类型检查 - const 变量赋值检查
- 数组越界检测 - 编译时数组索引范围检查
- 括号匹配 - 大括号、小括号、中括号的匹配检查
- 死循环检测 - 识别可能的无限循环
💡 智能代码补全
- 关键字补全 - SysY+ 语言关键字自动补全
- 变量补全 - 已声明变量的智能提示
- 函数补全 - 函数名和参数信息提示
- 代码片段 - 常用代码模板(如 main 函数)
🔧 代码重构工具
- 跳转到定义 (F12) - 快速跳转到变量/函数定义位置
- 悬停提示 - 鼠标悬停显示详细类型信息
- 快速修复 (Ctrl+.) - 自动修复常见错误
📝 代码格式化
- 自动格式化 (Shift+Alt+F) - 智能代码缩进
- 保存时格式化 - 文件保存时自动整理代码
🚀 其他功能
- AST 可视化 - 显示抽象语法树结构
- 代码运行 (Ctrl+F5) - 快速查看代码结构信息
- 语法验证 - 手动触发完整语法检查
- 状态栏指示 - 显示当前文件的 SysY+ 状态
📋 支持的文件类型
.syy
- SysY+ 主要文件扩展名
.sys
- SysY+ 兼容文件扩展名
.sysyplus
- SysY+ 完整扩展名
🎯 SysY+ 语言特性
数据类型
int x = 10; // 整数类型
float y = 3.14; // 浮点类型
char c = 'A'; // 字符类型
const int z = 5; // 常量
数组
int arr[10]; // 数组声明
int nums[5] = {1,2,3,4,5}; // 数组初始化
函数
int add(int a, int b) {
return a + b;
}
void main() {
int result = add(5, 3);
}
结构体
struct Point {
int x;
int y;
};
控制流
if (condition) {
// 条件语句
}
while (condition) {
// 循环语句
}
for (int i = 0; i < 10; i++) {
// for 循环
}
⚙️ 扩展设置
在 VSCode 设置中可以配置以下选项:
{
"sysyplus.enableDiagnostics": true, // 启用/禁用诊断
"sysyplus.enableAutoFormat": true, // 启用/禁用保存时自动格式化
"sysyplus.diagnosticsDelay": 500 // 诊断延迟时间(毫秒)
}
🚀 快速开始
- 安装扩展 - 在 VSCode 扩展市场搜索 "SysY+"
- 创建文件 - 新建
.syy
文件
- 开始编码 - 享受完整的语言支持功能
示例代码
创建一个 hello.syy
文件:
// SysY+ Hello World 程序
int main() {
int x = 10;
int y = 20;
int sum = add(x, y);
return 0;
}
int add(int a, int b) {
return a + b;
}
🎨 快捷键
快捷键 |
功能 |
F12 |
跳转到定义 |
Ctrl+. |
快速修复 |
Shift+Alt+F |
格式化文档 |
Ctrl+F5 |
运行代码 |
Ctrl+Space |
触发代码补全 |
Ctrl+Shift+Space |
参数提示 |
🐛 错误检测示例
扩展会自动检测以下错误类型:
// ❌ 错误:使用关键字作为变量名
int if = 5;
// ❌ 错误:未定义变量
int result = unknown_var;
// ❌ 错误:数组越界
int arr[5];
int value = arr[10];
// ❌ 错误:给常量赋值
const int x = 5;
x = 10;
// ❌ 错误:中文字符
int 变量 = 10;
🔄 更新日志
v0.0.1
- 🎉 首次发布
- ✨ 完整的语法高亮支持
- 🔍 智能错误检测
- 💡 代码补全和悬停提示
- 🔧 跳转到定义和快速修复
- 📝 代码格式化
🤝 贡献
欢迎提交 Issue 和 Pull Request 来改进这个扩展!
📄 许可证
MIT License
🙏 致谢
感谢所有为 SysY+ 语言和这个扩展做出贡献的开发者们!
享受 SysY+ 编程! 🎉