| 🎯 SysY编辑器 - SysY2022语言IDE      
 
🚀 基于Langium框架构建的现代化SysY2022语言集成开发环境,提供专业级的代码编辑、语法检查和智能提示功能。 ✨ 核心特性🎨 智能代码编辑
🌈 语法高亮 - 完整的SysY语法高亮支持,包括关键字、类型、操作符、注释等⚡ 自动格式化 - 保存时自动格式化、智能缩进、操作符空格调整🔧 智能补全 - 变量、函数、类型的上下文相关补全📐 代码折叠 - 支持函数、语句块的折叠和展开 🔍 静态分析
❌ 错误检测 - 实时语法错误和语义错误检测🔎 类型检查 - 函数参数、返回值类型验证🚫 重复定义检查 - 变量和函数的重复定义检测📊 数组越界检测 - 智能检测数组初始化越界问题 🛠️ 智能修复
💡 快速修复 - 一键修复常见代码问题📝 悬浮提示 - 鼠标悬停显示变量类型和函数签名🎯 诊断建议 - 详细的错误说明和修复建议❌ 重构功能 - 暂未实现(变量重命名、代码提取等) 🌐 多平台支持
💻 VSCode插件 - 完整的VSCode扩展支持🌍 Web编辑器 - 基于Monaco Editor的在线编辑器⚙️ 命令行工具 - CLI代码生成和批处理工具 📸 界面预览// SysY代码示例 - 支持完整语法高亮和智能提示
int factorial(int n) {
    if (n <= 1) {
        return 1;
    }
    return n * factorial(n - 1);
}
int main() {
    int result = factorial(5);  // 悬浮显示函数签名
    int arr[3] = {1, 2, 3, 4};  // 自动检测数组越界
    return result;
}
 🚀 快速开始📦 安装依赖npm install
 🔧 开发模式# 启动开发服务器
npm run dev
# 监听文件变化
npm run watch
# 生成语法服务
npm run langium:generate
 🌐 Web端使用# 构建Web版本
npm run build:web
# 启动Web服务器
npm run serve
 访问 http://localhost:5173体验在线编辑器。 💻 VSCode插件安装# 打包插件
npm run build
# 安装插件(已生成 sysy-language-support-1.0.0.vsix)
code --install-extension sysy-language-support-1.0.0.vsix
 🧪 运行测试npm test
 📖 使用指南🎮 快捷键
Alt+Shift+F- 格式化文档Ctrl+D- 手动触发诊断Ctrl+F9- 编译代码Ctrl+F5- 开始调试F8- 调试时继续执行F10- 调试时单步执行 💡 智能功能
自动修复 - 点击错误提示的灯泡图标查看修复选项悬浮提示 - 将鼠标悬停在变量或函数上查看详细信息格式化 - 右键选择"Format Document"或"Format Selection"代码补全 - 输入时自动显示补全建议 📝 支持的语法特性
✅ 基本数据类型:int,float,void✅ 变量声明和初始化✅ 数组声明和初始化✅ 函数定义和调用✅ 控制流:if-else,while,break,continue,return✅ 表达式和运算符✅ 常量定义:const 🏗️ 项目架构SysY/
├── 📁 src/
│   ├── 📁 language/           # 语言服务核心
│   │   ├── 📄 hello-world.langium      # SysY语法定义(.sys文件支持)
│   │   ├── 📄 formatting-provider.ts   # 格式化服务
│   │   ├── 📄 decl-validator.ts        # 声明验证器
│   │   ├── 📄 funcl-validator.ts       # 函数验证器
│   │   ├── 📄 quickfix-provider.ts     # 快速修复
│   │   ├── 📄 hover-provider.ts        # 悬浮提示
│   │   └── 📁 generated/               # 自动生成代码
│   ├── 📁 extension/          # VSCode扩展
│   └── 📁 cli/               # 命令行工具
├── 📁 static/                # Web端资源
│   ├── 📄 setupExtended.js   # Monaco编辑器配置
│   ├── 📄 debug-ui.js        # 调试界面
│   └── 📁 examples/          # 示例代码
├── 📁 syntaxes/              # 语法高亮配置
├── 📁 test/                  # 测试用例
└── 📄 package.json           # 项目配置
 🔧 技术栈
🎯 核心框架: Langium - 现代化语言工程框架⚙️ 开发语言: TypeScript - 类型安全的JavaScript超集🌐 Web编辑器: Monaco Editor - VSCode同款编辑器内核🧪 测试框架: Vitest - 快速的单元测试框架📦 构建工具: Vite + ESBuild - 高性能构建流水线🎨 语法高亮: TextMate Grammar - 业界标准的语法高亮规则 🎯 功能路线图✅ 已完成 (v0.1.0)
完整的SysY2022语言支持语法高亮和代码格式化静态语义检查和错误检测VSCode插件和Web端编辑器基础调试功能 🔄 进行中 (v0.2.0)🎪 计划中 (v0.3.0+)🤝 贡献指南我们欢迎任何形式的贡献! 🐛 报告问题
使用 Issues 报告 bug 或提出功能请求提供详细的重现步骤和环境信息 💻 参与开发
Fork 本仓库创建特性分支:git checkout -b feature/amazing-feature提交更改:git commit -m 'Add amazing feature'推送分支:git push origin feature/amazing-feature提交 Pull Request 📝 开发规范
遵循 TypeScript 代码规范添加适当的单元测试更新相关文档 📊 项目统计
📝 代码行数: 13,000+🧪 测试覆盖: 核心功能📦 功能模块: 25+🎯 完成度: ~85% 👥 开发团队
项目负责人: 乐一然,谭志勇,魏竹松技术栈: TypeScript + Langium + Monaco Editor开发周期: 2025春季学期 📄 许可证本项目基于 MIT License 开源协议。 🙏 致谢
 |  |