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,使用新的模块化结构
- 保持了原有功能,包括代码补全、语法检查和服务器连接
优化优势
- 代码补全智能化 - 提供更精准、无冗余的补全建议,大幅提升开发效率
- 性能优化 - 增强的缓存机制和索引系统,提供更快的响应速度
- 代码结构更清晰 - 模块化设计使代码易于理解和维护
- 功能扩展性更强 - 优化后的架构便于后续功能扩展
- 类型定义更严格 - 减少潜在错误
代码补全功能亮点
- 上下文分析 - 根据最后输入的关键字智能判断所需的补全类型
- 多级分类 - 将补全项分为模板、函数、变量、关键字和普通标识符
- 丰富文档 - 提供详细的补全项说明和使用示例
- 智能过滤 - 根据当前输入自动过滤不相关的补全项
- 防重复机制 - 使用Map结构确保不会出现重复的补全项
使用提示
- 代码补全会根据当前输入自动过滤,只需输入几个字符即可获得精准建议
- 在输入函数名后,系统会智能提示参数信息
- 使用模板补全可以快速生成常用代码结构,提高编码效率
- 保持代码风格一致性,系统会提示关键字大写规范
代码高亮和代码提示片段来自4gl插件
| |