level 13
锯条🪚
楼主
nethack 的编译方式让现代 lsp 难以自动化解析项目、构建索引。官方仓库已经有人在做 cmake 支持了,但落成时间也是个未知数。以前我用 compiledb 生成 compile_commands.json 喂给 clangd,勉强能解析大部分符号,后来某个版本开始这种方法就失效了,生成出来的数据库始终是空的,我就开始自己维护构建工具配置文件以生成编译数据库。最终选了 xmake 作为构建工具,因为书写起来比 cmake 更简单。
存放在我自己 fork 的 nethack 仓库的 intellisense 分支下,核心文件只有一个 xmake.lua,链接:网页链接
注意事项:
- 支持 windows/linux 平台,默认开启 tty 和 curses 界面的编译;
- 目前仅用于生成编译数据库,无法真正通过 xmake 构建,未来可能考虑加上这个功能;
- 需要至少成功编译一次项目后才能稳定生成数据库文件;
- 在 xmake 的某次更新后偶尔会无法通过 vscode 的 `XMake: UpdateIntellisense` 指令生成文件,需要手动使用命令行 `xmake project -k compile_commands build` 先生成一次;
- windows 平台可能需要安装 mingw/llvm,没有验证过 msvc 的正确性;
2026年06月30日 13点06分
1
存放在我自己 fork 的 nethack 仓库的 intellisense 分支下,核心文件只有一个 xmake.lua,链接:网页链接
注意事项:
- 支持 windows/linux 平台,默认开启 tty 和 curses 界面的编译;
- 目前仅用于生成编译数据库,无法真正通过 xmake 构建,未来可能考虑加上这个功能;
- 需要至少成功编译一次项目后才能稳定生成数据库文件;
- 在 xmake 的某次更新后偶尔会无法通过 vscode 的 `XMake: UpdateIntellisense` 指令生成文件,需要手动使用命令行 `xmake project -k compile_commands build` 先生成一次;
- windows 平台可能需要安装 mingw/llvm,没有验证过 msvc 的正确性;
