# 4gl-helper **Repository Path**: da9527/4gl-helper ## Basic Information - **Project Name**: 4gl-helper - **Description**: 一个给4gl类型文件高亮和代码提示的vscode插件 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2024-06-04 - **Last Updated**: 2026-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 4gl Helper 一个支持4gl语言的vscode插件,提供全方位的开发支持功能,特别优化了代码补全体验。 ## 功能特性 - 代码高亮 - 代码片段 - 代码格式化 - 代码补全 - 关键字大小写警告提示 ## 快捷键 * 多行编辑时自动编号 `ctrl`+`alt`+`i` * 代码格式化 `alt`+`shift`+`f` * 删除当前文件中所有的单行注释 `ctrl`+`alt`+`d` ## 项目结构 项目采用模块化架构设计,将不同功能组件分离,便于维护和扩展: ``` ├── client/ # 客户端代码,处理VSCode扩展相关功能 ├── server/ # 语言服务器代码,提供核心语言服务 │ ├── src/core/ # 核心语言处理逻辑 │ ├── src/data/ # 数据定义和常量 │ ├── src/services/ # 服务层,处理具体功能 │ └── src/utils/ # 工具函数 ``` ## 功能优化说明 近期对项目进行了全面的代码重构和功能优化,特别是代码补全功能的大幅改进: ### 1. 智能代码补全优化 (client/src/auto.ts) - **上下文感知** - 根据当前代码上下文提供最相关的补全项 - **多级优先级排序** - 按照补全项的相关性和类型进行智能排序 - **精确过滤机制** - 避免显示重复和与当前输入不匹配的补全项 - **增强的缓存策略** - 优化性能,提供更快的补全响应 - **智能模板** - 根据代码上下文提供常用代码结构模板 - **函数参数补全** - 在函数调用时智能提示参数名称 - **客户端-服务器职责分离** - 移除了客户端的关键字补全功能,避免与服务器端重复,确保文档补全仅基于当前文件中定义的变量和方法 ### 2. 模块化架构设计 - 创建了清晰的目录结构,将代码分为核心模块、数据模块、服务模块和工具模块 - 各模块职责明确,通过索引文件统一导出 ### 3. 核心模块 (core/) - `languageService.ts`: 实现关键字大小写检查和语法结束检查等核心语言特性 - `languageConstants.ts`: 定义语言配置和诊断消息模板 ### 4. 数据模块 (data/) - 分离数据定义和处理逻辑,提高可维护性 - 统一管理语言关键字和常量 ### 5. 服务模块 (services/) - `documentValidator.ts`: 处理文档的语法检查和诊断功能 - `codeCompletion.ts`: 提供代码补全服务 ### 6. 工具模块 (utils/) - 提取通用工具函数,实现代码复用 - 优化数组处理和诊断相关工具方法 ### 7. 服务器重构 - 更新了server.ts,使用新的模块化结构 - 保持了原有功能,包括代码补全、语法检查和服务器连接 ### 优化优势 - **代码补全智能化** - 提供更精准、无冗余的补全建议,大幅提升开发效率 - **性能优化** - 增强的缓存机制和索引系统,提供更快的响应速度 - **代码结构更清晰** - 模块化设计使代码易于理解和维护 - **功能扩展性更强** - 优化后的架构便于后续功能扩展 - **类型定义更严格** - 减少潜在错误 ### 代码补全功能亮点 1. **上下文分析** - 根据最后输入的关键字智能判断所需的补全类型 2. **多级分类** - 将补全项分为模板、函数、变量、关键字和普通标识符 3. **丰富文档** - 提供详细的补全项说明和使用示例 4. **智能过滤** - 根据当前输入自动过滤不相关的补全项 5. **防重复机制** - 使用Map结构确保不会出现重复的补全项 ### 使用提示 - 代码补全会根据当前输入自动过滤,只需输入几个字符即可获得精准建议 - 在输入函数名后,系统会智能提示参数信息 - 使用模板补全可以快速生成常用代码结构,提高编码效率 - 保持代码风格一致性,系统会提示关键字大写规范 代码高亮和代码提示片段来自[4gl插件](https://github.com/garysan/4gl)