vscode C/C++ IntelliSense

配置 C/C++ IntelliSense

这篇文章讲述了如何在 Visual Studio Code 中配置 C/C++ 扩展,以提供特定于 C++ 的 IntelliSense 建议。IntelliSense 是内置于 VS Code 的一个工具,提供代码补全、参数信息、语法高亮等功能,帮助你更快、更高效地编码。

IntelliSense 只需要系统上安装有 C/C++ 编译器。编译器提供 C++ 特定信息给 IntelliSense,例如系统包含路径的位置和其他设置。对于项目级别的配置,参考“项目级别 IntelliSense 配置”部分。

何时配置核心 IntelliSense 功能

编译器是配置核心 IntelliSense 功能的唯一需求。C/C++ 扩展会扫描常见路径寻找编译器,如 Clang、GCC、MinGW、cygwin 和 MSVC。如果找到任何编译器并且它们在安全位置,则自动配置 IntelliSense。否则,会显示通知要求确认是否配置该编译器。选定的编译器也会设置为默认编译器。

如何检查 IntelliSense 是否配置

如果未配置 IntelliSense,C/C++ 扩展会在状态栏显示一个带有“Configure IntelliSense”标签的黄色指示器。

配置 IntelliSense 指示器

要配置,请选择状态栏指示器,会弹出配置快速选择选项。可以通过快速选择安装或选择一个 C/C++ 编译器。

如果没有看到状态栏指示器,可以检查项目的 c_cpp_properties.json 文件。这个文件存储所有 IntelliSense 配置设置。通过命令面板 (Ctrl+Shift+P) 选择 "C/C++: Edit Configurations (UI)" 来导航到该文件。检查 IntelliSense 模式以找到配置。关于 c_cpp_properties.json 文件的更多信息,可以查看架构参考。

如何配置 IntelliSense

IntelliSense 配置存储在自动创建于工作区的 c_cpp_properties.json 文件中。以下三种方式都可以编辑 c_cpp_properties.json 文件:

选项 1:通过配置快速选择选项选择配置

通过命令面板 (Ctrl+Shift+P) 输入 "Select IntelliSense Configuration" 打开快速选择选项,会显示系统上所有找到的配置选项。

选择一个可用选项。如果选择编译器,则它会默认用于 IntelliSense。可以随时返回配置快速选择更改配置选项。

如果快速选择中没有可用选项,说明系统上没有找到编译器。可以手动浏览系统或安装一个 C/C++ 编译器。Windows 系统上,选择 “Help me install a compiler” 选项,跳转到安装编译器的步骤指南。macOS 或 Linux 系统上,选择 “Install a compiler” 并按照提示安装 C++ 编译器。

选项 2:通过 UI 编辑 IntelliSense 配置

通过命令面板 (Ctrl+Shift+P) 选择 "C/C++: Edit Configurations (UI)" 打开 IntelliSense 配置 UI。这个视图是 c_cpp_properties.json 文件的用户界面。

将 Compiler path 字段设置为用于构建项目的编译器完整路径。例如,Linux 上 GCC 默认安装路径为 /usr/bin/gcc。将 IntelliSense 模式设置为编译器的特定架构变体。

选项 3:直接编辑 c_cpp_properties.json 文件

可以直接编辑 c_cpp_properties.json 文件自定义配置。通过命令面板 (Ctrl+Shift+P) 选择 "C/C++: Edit Configurations (JSON)",在工作区的 .vscode 文件夹中创建 c_cpp_properties.json 文件。

使用 compilerPath 变量添加编译器。这个变量是用于构建项目的编译器完整路径。例如,Linux 上 GCC 默认安装路径为 /usr/bin/gcc。

关于 c_cpp_properties.json 文件的更多信息,请查看架构参考。

项目级 IntelliSense 配置

通过编译器配置 IntelliSense 提供了核心功能,这被称为基础配置。对于更复杂的使用场景,例如设置需要:

  • 额外的包含路径,例如引用一个或多个不同的库
  • 影响语言行为的特定编译器参数(因此影响 IntelliSense)

可以通过以下方法提供这些额外配置:

  1. c_cpp_properties.json 文件和相关设置
  2. 自定义配置提供者形式的另一个 VS Code 扩展(例如 Makefile Tools 或 CMake Tools 扩展)
  3. compile_commands.json 文件

配置提供者

自定义配置提供者是 VS Code 中的另一个扩展,可以提供比 C/C++ 扩展更准确的 C++ IntelliSense 配置。例如,对于 CMake 或 Make 构建系统,可以使用 Makefile Tools 或 CMake Tools 扩展作为配置提供者。要添加扩展作为配置提供者,可以通过配置快速选择选项选择该扩展,在配置 UI 中编辑高级设置下的 Configuration provider 字段,或者在 c_cpp_properties.json 文件中添加 configurationProvider 字段。例如,对于 CMake 扩展,添加的路径为 ms-vscode.cmake-tools。

compile_commands.json 文件

另一种提供 IntelliSense 配置的方法是使用 compile_commands.json 文件,该文件描述了项目中每个文件的确切编译命令。通常通过设置命令行参数在配置项目时由构建系统(如 CMake 或 Bazel)生成 compile_commands.json 文件。可以通过与配置 IntelliSense 部分中讨论的相同方法选择 compile_commands.json 文件进行配置,通过配置快速选择选项、通过 UI 编辑配置,或直接编辑 c_cpp_properties.json 文件。在配置 UI 中,可以在高级配置和 Compile commands 字段下添加该文件。例如,如果 compile_commands.json 文件在你的工作区根目录下,在 Compile commands 字段中输入 ${workspaceFolder}/compile_commands.json。

如果编译命令数据库不包含与编辑器中打开的文件对应的翻译单元的条目,则使用基础配置(如 c_cpp_properties.json 中的 includePath 和 defines)。如果 C/C++ 扩展恢复到基础配置,语言状态栏指示器会在状态栏中显示标签 "Configure IntelliSense"。

如果指定了自定义配置提供者和 compile_commands.json 文件,则首先查询自定义配置提供者以获取 IntelliSense 配置。

如果程序包含工作区中未包含或不在标准库路径中的头文件,可以修改包含路径。C/C++ 扩展通过查询 Compiler path 指定的编译器来填充包含路径。如果扩展无法找到目标系统库的路径,可以手动输入包含路径。

检查 IntelliSense 活动

可以通过语言状态栏检查 IntelliSense 是否正在处理你的文件。要调用语言状态栏,打开一个 C++ 文件。状态栏会显示文本 {} C++。悬停在 {} 符号上以打开语言状态栏浮动窗口。浮动窗口顶部项目指示 IntelliSense 状态。以下是不同状态及其含义:

  • IntelliSense: Ready = IntelliSense 为 C/C++ 扩展配置并在与编辑器交互时自动激活。
  • IntelliSense: Updating = IntelliSense 正在根据你对代码的更改积极确定任何代码补全、语法高亮等。

可以选择浮动窗口右侧的图钉图标,将其固定在状态栏上。

下一步

通过这些配置选项和步骤,你可以确保 IntelliSense 根据你的需要正确配置。详细内容请访问 Visual Studio Code 的 C/C++ IntelliSense 配置页面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值