Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
ghost opened this issue Jul 5, 2020 · 13 comments
Closed

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

ghost opened this issue Jul 5, 2020 · 13 comments

Comments

@ghost
Copy link

ghost commented Jul 5, 2020

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

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

@waruqi
Copy link
Member

waruqi commented Jul 5, 2020

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

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

@ghost
Copy link
Author

ghost commented Jul 5, 2020

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

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

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

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

@waruqi
Copy link
Member

waruqi commented Jul 6, 2020

嗯,等有时间我看下。

@waruqi
Copy link
Member

waruqi commented Jul 9, 2020

你可以参考这个,配置下 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

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

@waruqi
Copy link
Member

waruqi commented Jul 12, 2020

我插件更新了下,支持自动生成 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",
    }
  ],
}

@ghost
Copy link
Author

ghost commented Jul 15, 2020

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

@wuzhiguocarter
Copy link

非常赞的功能

@OuYangPaste
Copy link

very very good

@waruqi
Copy link
Member

waruqi commented Sep 13, 2021

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

@yueneiqi
Copy link

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

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

@OuYangPaste
Copy link

OuYangPaste commented May 11, 2022

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

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

@DawnMagnet
Copy link

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

@waruqi
Copy link
Member

waruqi commented Feb 21, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants