KX Developer下Q项目Q文件识别、模块开发及GitHub托管问题咨询
KX Developer 自定义Q模块加载适配方案
问题根源
当前函数无法定位、需要手动重建模块的核心原因是两套机制未对齐:
- Q解释器仅会扫描启动配置中指定的磁盘路径,识别路径下Q文件中的
\d .mymodule模块声明并绑定内存函数;自定义的src/目录默认不在KX Developer的Q搜索路径内,解释器不会主动加载该目录下的文件 - 手动执行「右键-从Q文件新建模块」的操作,本质是IDE将源文件拷贝到KX默认托管的
kxscm模块路径下,同时生成按函数拆分的缓存文件;修改源码后因缓存文件未自动同步,才需要重复删除、重建模块才能生效
免手动重建的配置流程
- 将
src/目录纳入Q解释器的搜索范围。在项目工作区根目录新建或编辑.qinit初始化文件,添加加载规则:\l ./src/,实现IDE启动Q解释器时自动加载src目录下所有Q文件 - 关闭IDE的冗余模块同步逻辑。打开KX Developer设置面板,进入「代码管理-模块生成」分类,关闭「保存Q文件时自动同步文件到kxscm目录」开关;后续修改src下的源码后,仅需在Scratchpad执行
\l ./src/对应模块文件.q即可热加载更新的函数,完全免去手动删除、重建模块的操作 - 适配QCumber/Quke测试链路。编辑test目录下的QCumber启动配置,在预加载脚本配置项中加入对src目录的加载逻辑,保证测试用例执行前所有模块文件已完成加载,此时通过全限定路径
.mymodule.myfunction[]即可正常调用目标函数
项目结构优化建议
完全不需要放弃当前按业务归类维护src源文件的模式,该结构本身就是Q项目适配版本控制的通用最佳实践,配套简单调整即可同时满足IDE功能与仓库结构清晰度要求:
- KX Developer生成的
/kxscm/目录下的数十个拆分文件,本质是IDE为实现智能提示、函数跳转生成的本地运行缓存,不属于项目核心源码,无需纳入版本控制 - 在项目根目录的
.gitignore文件中添加/kxscm/规则,将整个IDE生成的缓存目录排除在代码托管范围外,推送到GitHub时就不会出现零散拆分文件破坏原有5个核心Q文件的清晰分类结构 - 如需保留KX Developer的代码自动补全、函数跳转功能,仅需在IDE的「工作区源码索引」设置中,将
./src目录加入索引扫描范围,IDE即可直接识别源文件中的函数与模块声明,无需依赖kxscm下的拆分缓存
内容的提问来源于stack exchange,提问作者Will
相关产品推荐
相关产品推荐

