xmake-io/xmake-vscode

支持为vscode-cpptools提供intellisense配置信息

Opened this issue · 13 comments

VS Code的c++插件有一个配置提供程序的选项,可以使用第三方工具提供intellisense的配置信息:
image

xmake有可能对这个地方做适配吗,感觉这样会方便很多

目前还不支持,主要是最近没太多时间去研究和支持这块

如果你感兴趣,可以帮忙提个pr上来,或者帮忙提供一些如何支持的相关文档或者可供参考的example,如果支持起来不麻烦,我会考虑的

目前还不支持,主要是最近没太多时间去研究和支持这块

如果你感兴趣,可以帮忙提个pr上来,或者帮忙提供一些如何支持的相关文档或者可供参考的example,如果支持起来不麻烦,我会考虑的

我找了一下,没找到相关的文档。但是看了下cpptools的代码,感觉应该是要实现一个CustomConfigurationProvider接口,大概在这个位置
image

cpptools里面的相关实现在src/LanguageServer/customProviders.tssrc/LanguageServer/configurations.ts里。不过我不会写typescript,很多地方看不懂......

嗯,等有时间我看下。

你可以参考这个,配置下 c_cpp_properties.json
https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference
https://code.visualstudio.com/docs/cpp/configure-intellisense-crosscompilation

里面设置下 compile_commands.json的路径就好,而xmake支持生成这个的

xmake project -k compile_commands

插件内置支持,我会有有时间了 会考虑改进下。不过你先手动这样配置下,应该也能用。

我插件更新了下,支持自动生成 compile_commands.json 到当前项目的 .vscode 目录下,如果你要支持intellisense,只需要配置 .vscode/c_cpp_properties.json在里面关联上这个 .vscode/compile_commands.json 路径就行了

至于,具体怎么生成c_cpp_properties,官方文档里面有详细说明:https://code.visualstudio.com/docs/cpp/configure-intellisense-crosscompilation

for example (.vscode/c_cpp_properties.json):

  "configurations": [
    {
      "compileCommands": ".vscode/compile_commands.json",
    }
  ],
}

测试了一下,可以正常显示intellisense信息了

非常赞的功能

very very good

我新加了一个 xmake.onUpdateIntellisense 的命令,可以手动执行去强制触发 compile_commands.json 的更新

我新加了一个 xmake.onUpdateIntellisense 的命令,可以手动执行去强制触发 compile_commands.json 的更新

我查文档没有找到这个命令的使用,能再解释一下怎么用吗?谢谢

我查文档没有找到这个命令的使用,能再解释一下怎么用吗?谢谢

这是 vscode 插件的命令,在vscode 里 ctrl + shift + p 输入这个命令
image

这个插件生成的似乎有些问题,我需要编译QString/QtCore的相关头文件,但并没有找到
image
这个显示xmake是可以找到安装在本地的Qt6相关的库
根据上述命令生成compile_commands.json之后
image
可以看到,并没有qt相关库的地址
所以C/C++ Extension中的Intellisense并没有被正确配置

更完整的配置说明,我更新到文档了,可以直接看文档:https://xmake.io/#/zh-cn/plugin/more_plugins?id=%e9%85%8d%e7%bd%ae-intellsence