将 Conan Include 链接到 VS Code
Linking Conan Include to VS Code
我目前正在使用 sqlite_orm
作为依赖项的 C++ 项目上使用 Conan。
当使用我个人的包含时(例如 myClass.hpp
)Visual Studio 代码能够提供自动完成,但使用 Conan 的包含时,无法自动完成。
我正在寻找一种方法 link 将柯南的包含路径添加到我的 VSCode,有什么想法吗?
Conan 还没有为 vscode 提供扩展,但您可以尝试:
https://github.com/FIREFOXCYBER/conan-tools-vs-code
市场上有售。
否则,您可以在设置中手动添加包文件夹路径(例如~/.conan/data/package/version/package/package_id/include
)。
在 VSCode 的设置中搜索后,我发现您可以更改包含在 c_cpp_properties.json
文件中的路径,您可以在 .vscode
文件夹中找到该文件
在 includePath
字段中添加您想要的路径允许您选择自己的包含路径
我最近陷入了类似的困境。所有那些红色的波浪线都让人抓狂。该社区扩展为 运行 "conan install" 和 "conan build" 提供了一个很好的按钮,但它对 link 智能感知没有帮助。
default C++ plugin for VS code gets its list of paths to search for headers from ${PROJECT_ROOT}/.vscode/c_cpp_properties.json 的智能感知。不幸的是,Conan 将其包 headers 散布在您的 home/user 目录中的一堆不同文件夹中。
我最后只是写了一个 python 脚本,每次 "conan install" 是 运行,从 conanfile.py 中的元数据复制 header 个位置到c_cpp_properties.json。
我试图在这里捆绑 PyPI 上的可重用位:
https://pypi.org/project/parktoma-vscconan/1.0.1/
但这对我来说确实是权宜之计。 IMO,正确的做法是让社区扩展执行相同的步骤,所有这些都很好地集成在 IDE 中。但这现在有效,希望它能有所帮助。
在项目的 .vscode/c_cpp_properties.json
文件中添加以下行
"includePath": ["${workspaceFolder}/**", "~/.conan/data/**"]
我想补充一点,您还可以使用 .vscode/settings.json
文件替代 .vscode/c_cpp_properties.json
。
例如,我刚刚建立了一个项目:
{
"C_Cpp.clang_format_path": "/usr/lib/llvm-10/bin/clang-format",
"C_Cpp.default.includePath": [
"~/.conan/data/**"
],
}
将 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
添加到您的 CMakeLists.txt(或添加到 cmake:cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
)以便生成 build/compile_commands.json
。
VS Code(clion 等)可以利用此文件支持自动完成:
$ cat .vscode/c_cpp_properties.json
{
"configurations": [
{
"name": "Linux",
"defines": [],
"compilerPath": "/usr/bin/g++",
"cStandard": "c11",
"cppStandard": "c++14",
"intelliSenseMode": "clang-x64",
"compileCommands": "${workspaceFolder}/build/compile_commands.json"
}
],
"version": 4
}
我目前正在使用 sqlite_orm
作为依赖项的 C++ 项目上使用 Conan。
当使用我个人的包含时(例如 myClass.hpp
)Visual Studio 代码能够提供自动完成,但使用 Conan 的包含时,无法自动完成。
我正在寻找一种方法 link 将柯南的包含路径添加到我的 VSCode,有什么想法吗?
Conan 还没有为 vscode 提供扩展,但您可以尝试:
https://github.com/FIREFOXCYBER/conan-tools-vs-code
市场上有售。
否则,您可以在设置中手动添加包文件夹路径(例如~/.conan/data/package/version/package/package_id/include
)。
在 VSCode 的设置中搜索后,我发现您可以更改包含在 c_cpp_properties.json
文件中的路径,您可以在 .vscode
文件夹中找到该文件
在 includePath
字段中添加您想要的路径允许您选择自己的包含路径
我最近陷入了类似的困境。所有那些红色的波浪线都让人抓狂。该社区扩展为 运行 "conan install" 和 "conan build" 提供了一个很好的按钮,但它对 link 智能感知没有帮助。
default C++ plugin for VS code gets its list of paths to search for headers from ${PROJECT_ROOT}/.vscode/c_cpp_properties.json 的智能感知。不幸的是,Conan 将其包 headers 散布在您的 home/user 目录中的一堆不同文件夹中。
我最后只是写了一个 python 脚本,每次 "conan install" 是 运行,从 conanfile.py 中的元数据复制 header 个位置到c_cpp_properties.json。
我试图在这里捆绑 PyPI 上的可重用位: https://pypi.org/project/parktoma-vscconan/1.0.1/
但这对我来说确实是权宜之计。 IMO,正确的做法是让社区扩展执行相同的步骤,所有这些都很好地集成在 IDE 中。但这现在有效,希望它能有所帮助。
在项目的 .vscode/c_cpp_properties.json
文件中添加以下行
"includePath": ["${workspaceFolder}/**", "~/.conan/data/**"]
我想补充一点,您还可以使用 .vscode/settings.json
文件替代 .vscode/c_cpp_properties.json
。
例如,我刚刚建立了一个项目:
{
"C_Cpp.clang_format_path": "/usr/lib/llvm-10/bin/clang-format",
"C_Cpp.default.includePath": [
"~/.conan/data/**"
],
}
将 set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
添加到您的 CMakeLists.txt(或添加到 cmake:cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
)以便生成 build/compile_commands.json
。
VS Code(clion 等)可以利用此文件支持自动完成:
$ cat .vscode/c_cpp_properties.json
{
"configurations": [
{
"name": "Linux",
"defines": [],
"compilerPath": "/usr/bin/g++",
"cStandard": "c11",
"cppStandard": "c++14",
"intelliSenseMode": "clang-x64",
"compileCommands": "${workspaceFolder}/build/compile_commands.json"
}
],
"version": 4
}