Closed xq114 closed 3 years ago
根据VSCode的文档,用compile_commands来作为intellisense provider可能并不是一个好的选择,因为如果没有entry(比如单独开一个头文件不打开对应的cpp文件)这个文件就会忽略compile_commands.json而使用用户设置的include
如果xmake可以提供一个vscode-plugin生成一个c_cpp_properties.json(包括include,define,language version)就更好了,这个compile_commands不导出非默认目标可以不用修改
目前xmake-VSCode的Intellisense依赖生成的compile_commands.json,然而compile_commands.json缺失了非默认的target导致这些target里的文件无法正确产生Intellisense
default设置主要用于控制编译行为,而对于 compile_commands 倒是不用关心这些,我刚改了下 放开 default target了,你可以更新到 dev 版本再试试
如果xmake可以提供一个vscode-plugin生成一个c_cpp_properties.json(包括include,define,language version)就更好了,这个compile_commands不导出非默认目标可以不用修改
这就等于完全接管 c_cpp_properties 了,后续的所有设置智能依赖 xmake.lua 的配置进行自动生成,用户也没法直接在 c_cpp_properties 里面增删其他东西了,如果xmake生成的结果确实能满足所有用户需求那也没啥,如果满足不了一些用户的定制配置,那么连自定义配置的机会都没了。
目前我感觉 compile_commands 足够了,如果真有一些额外的配置,用户可以自己在 c_cpp_properties 里面追加配置。
描述讨论详情
目前xmake-VSCode的Intellisense依赖生成的compile_commands.json,然而compile_commands.json缺失了非默认的target导致这些target里的文件无法正确产生Intellisense