Visual C++ IntelliSense 功能

IntelliSense 是一组功能的名称,使编码更加方便。 适用于C++的 IntelliSense 适用于独立文件,以及属于C++项目的一部分的文件。 在跨平台项目中,某些 IntelliSense 功能可在共享代码项目中 的 .cpp.c 文件中使用,即使在 Android 或 iOS 上下文中也是如此。

本文概述了 C++ IntelliSense 功能。 有关如何为 IntelliSense 配置项目以及如何排查问题的信息,请参阅 为 IntelliSense 配置C++项目

C++中的 IntelliSense 功能

IntelliSense 是一组功能的名称,使编码更加方便。 由于不同的人对什么是方便的有不同的看法,几乎所有 IntelliSense 功能都可以在 “选项” 对话框下的 文本编辑器>C/C++>高级设置 中启用或禁用。 菜单栏上的“工具”菜单中提供了“选项”对话框。

“工具选项”对话框

可以使用下图中显示的菜单项和键盘快捷方式来访问 IntelliSense。

IntelliSense 菜单

语句完成和成员列表

开始键入编译器识别的关键字、类型、函数、变量名称或其他程序元素时,编辑器会为你提供完成单词。

Visual C++

首次调用成员列表时,它只显示当前上下文可访问的成员。 如果在此之后按 Ctrl+J,它将显示所有成员,无论访问控制级别。 如果第三次调用它,则会显示更广泛的程序元素列表。 可以在“ 选项 ”对话框中的“ 文本编辑器>C/C++>General>Auto 列表成员”下关闭成员列表。

Visual C++ 成员列表

参数帮助

在输入函数调用的开括号或类模板变量声明的尖括号时,编辑器会显示一个小窗口,其中列出函数或构造函数每个重载的参数类型。 “current”参数(基于游标位置)以粗体显示。 可以在“选项”对话框中的“文本编辑器>C/C++>General> 参数信息”下关闭参数信息

Visual C++ 参数帮助

快速信息

将鼠标光标悬停在变量上时,会出现一个小窗口,显示类型信息及定义该类型的头文件。 将鼠标悬停在函数调用上以查看函数的签名。 可以在 “选项 ”对话框中的“ 文本编辑器>C/C++>Advanced>自动快速信息”下关闭“快速信息”。

Visual C++ QuickInfo

错误波形曲线

代码元素(变量、关键字、大括号、类型名称等)下的波浪线会提示代码中的错误或潜在错误。 在编写转发声明时会出现绿色波浪线,提醒你仍然需要编写实现。 在共享项目中,当代码中存在未激活的错误时,例如,在 Windows 上下文中工作时输入在 Android 上下文中会导致错误的内容,会出现紫色波浪线。 红色波浪线指示需要处理的活动代码中的编译器错误或警告。

视觉C++错误波形曲线

代码着色和字体

可以在 “选项 ”对话框中的“ 环境>字体和颜色”下更改默认颜色和字体。 可以在此处更改许多 UI 窗口的字体,而不仅仅是编辑器。 特定于C++的设置以“C++”开头;其他设置适用于所有语言。

跨平台 IntelliSense

在共享代码项目中,即使在 Android 上下文中工作时,某些 IntelliSense 功能(如波形曲线)也可用。 如果你编写的一些代码会在非活动项目中导致错误,IntelliSense 仍然显示波浪线,但它们与当前上下文中错误的波浪线颜色不同。

请考虑配置为为 Android 和 iOS 生成的 OpenGLES 应用程序。 此图显示正在编辑的共享代码。 在此图像中,活动项目为 iOS.StaticLibrary

iOS 被选为活动项目。

请注意以下内容:

  • #ifdef第 6 行上的分支灰显以指示非活动区域,因为__ANDROID__未为 iOS 项目定义。

  • 第 11 行的问候变量使用标识符 HELLO 进行初始化,该标识符现在显示红色下划线。 这是因为当前活动 iOS 项目中未定义标识符 HELLO

  • 第 12 行的标识符 BYE 显示紫色波浪线,因为此标识符未在当前处于非活动状态的 Android.NativeActivity 项目中定义。 即使此行在 iOS 是活动项目时编译,但在 Android 是活动项目时,它也不会编译。 由于这是共享代码,因此即使它在当前活动配置中能够编译,您也应该更正代码。

如果将活动项目更改为 Android,波形曲线将更改:

  • #else第 8 行上的分支灰显,表示非活动区域,因为__ANDROID__为 Android 项目定义。

  • 第 11 行的问候变量使用标识符进行初始化,该标识符 HELLO具有紫色波浪线。 这是因为当前非活动 iOS 项目中未定义标识符 HELLO

  • 第 12 行在标识符 BYE 上具有红色波浪线,因为此标识符未在活动项目中定义。

针对独立文件的 IntelliSense

在任何项目之外打开单个文件时,仍然可以使用 IntelliSense 功能。 可以在“ 选项 ”对话框中的“ 文本编辑器>C/C++>Advanced”下启用或禁用特定的 IntelliSense 功能。 若要为不属于项目的单个文件配置 IntelliSense,请查找 IntelliSense 并浏览非项目文件 部分。

Visual C++ 单文件智能感知

默认情况下,单个文件 IntelliSense 仅使用标准包含目录来查找头文件。 若要添加其他目录,请打开 解决方案 节点上的快捷菜单,并将目录添加到 “调试源代码 ”列表,如下图所示:

向头文件添加路径。

启用或禁用功能

由于不同的人对什么是方便的有不同的看法,几乎所有 IntelliSense 功能都可以在 “选项” 对话框下的 文本编辑器>C/C++>高级设置 中启用或禁用。 菜单栏上的“工具”菜单中提供了“选项”对话框。

“工具选项”对话框