VisualStudio中包含了一套生产力工具,使C++开发人员能够轻松地阅读、编辑和导航他们的代码。在这篇博文中,我们将深入了解这些特性并回顾它们的功能。本文是针对visualstudio新用户的系列文章的一部分。
这篇博文介绍了以下概念:
阅读和理解代码
如果你和大多数开发人员一样,那么你花在代码上的时间可能比修改代码要多。有鉴于此,visualstudio提供了一套特性来帮助您更好地可视化和理解您的项目。
基本编辑器功能
VisualStudio会自动为C++代码提供语法着色,以区分不同类型的符号。未使用的代码(例如 #如果0 )颜色更淡了。此外, 轮廓 在代码块周围添加,以便于扩展或折叠它们。 如果代码中存在会导致生成失败的错误,VisualStudio会在出现问题的地方添加一个红色的曲线。如果visualstudio发现您的代码有问题,但该问题不会导致生成失败,那么您将看到一个绿色的曲线。您可以在中查看编译器生成的任何警告或错误 错误列表 窗户。
如果将光标放在大括号“{”或“}”上,VisualStudio将亮显与其匹配的对象。
按住可在编辑器中放大或缩小 Ctrl键 使用鼠标滚轮滚动或选择左下角的缩放设置。
这个 工具>选项 菜单是VisualStudio选项的中心位置,使您能够配置各种不同的功能。为您的独特需求定制IDE是值得探索的。 您可以通过转到将行号添加到项目中 文本编辑器>所有语言>常规 或者用 快速启动 (Ctrl+Q) . 可以为所有语言或特定语言设置行数,包括C++。
快速信息和参数信息
您可以将鼠标悬停在任何变量、函数或其他代码符号上,以获取有关该符号的信息。对于可以声明的符号, 快捷信息 显示声明。 当您编写对函数的调用时, 参数信息 被调用以澄清预期作为输入的参数类型。如果代码中有错误,可以将鼠标悬停在上面,Quick Info将显示错误消息。您还可以在 错误列表 窗户。
此外, 快捷信息 显示您放置在所悬停的符号定义上方的任何注释,使您可以方便地检查代码中的文档。
滚动条地图模式
VisualStudio比大多数应用程序更进一步地理解了滚动条的概念。与 滚动条地图模式 ,您可以在不离开当前位置的情况下同时滚动和浏览文件,也可以单击工具栏上的任何位置在其中导航。即使有 地图模式 关闭时,滚动条以绿色(表示已保存的更改)和黄色(表示未保存的更改)突出显示代码中所做的更改。你可以打开 地图模式 在T中 工具>选项>文本编辑器>所有语言>滚动条>垂直滚动条使用地图模式 或者用 快速启动(Ctrl+Q) .
类视图
有几种可视化代码的方法。一个例子是 类视图 . 你可以打开 类视图 从 查看 功能表或按 Ctrl+Shift+C组合键 . 类视图 显示所有代码符号及其范围和父/子层次结构的可搜索树集,按项目组织。你可以配置什么 类视图 显示自 类视图设置 (单击窗口顶部的齿轮箱图标)。
生成包含文件的图形
要了解文件之间的依赖关系链,请在任何打开的文档中单击鼠标右键,然后选择 消息 包含文件的速率图 . 您还可以选择保存图形以供以后查看。
查看呼叫层次结构
您可以右键单击任何函数调用以查看其调用层次结构的递归列表(调用它的函数和它调用的函数)。列表中的每个函数都可以以相同的方式展开。有关详细信息,请参阅 调用层次结构 .
Peek定义
通过右键单击变量或函数并选择 Peek定义 ,或按 Alt+F12键 把光标放在那个符号上。这是一种快速了解符号更多信息的方法,无需离开编辑器中的当前位置。
在代码库中导航
visualstudio提供了一套工具,允许您快速高效地浏览代码库。
打开文档
右键单击 #包括 指令并选择 打开文档 ,或按 Ctrl+Shift+G组合键 将光标移到该行上,打开相应的文档。
切换头文件/代码文件
通过右键单击文件中的任意位置并选择 切换头文件/代码文件 或按相应的键盘快捷键: Ctrl+K、Ctrl+O .
解决方案管理器
解决方案管理器 是解决方案中管理和在文件之间导航的主要方法。您可以通过在中单击任何文件来导航到该文件 解决方案管理器 . 默认情况下,文件按其所在的项目分组。要更改此默认视图,请单击 解决方案和文件夹 按钮切换到基于文件夹的视图。
转到定义/声明
通过在编辑器中右键单击代码符号并选择 转到定义 ,或按 12层 . 您可以从右键单击上下文菜单或按导航到声明 Ctrl+F12键 .
查找/在文件中查找
您可以使用运行文本搜索来查找解决方案中的任何内容 查找 (Ctrl+F) 或 在文件中查找 (Ctrl+Shift+F) .
“查找”可以限定为选定内容、当前文档、所有打开的文档、当前项目或整个解决方案,并支持正则表达式。它还会在IDE中自动高亮显示所有匹配项。 在文件中查找 是更复杂的版本 查找 在中显示结果列表的 查找结果 窗户。它甚至可以比 查找 ,例如允许您搜索外部代码依赖项、按文件类型筛选等等。你可以组织起来 查找 在两个窗口中搜索结果,或在 查找结果 窗户。中的单个条目 查找结果 如果不需要,也可以删除窗口。
查找所有引用
查找所有引用 显示对选定符号的引用列表。更多关于 查找所有引用 ,看看我们的博客, 查找为更大搜索重新设计的所有引用 .
导航栏
通过使用编辑器窗口上方的导航栏,可以导航到代码库周围的不同符号。
去
去 (Ctrl+T) 是一种代码导航功能,可用于导航到文件、代码符号或行号。有关更多信息,请参阅 介绍Go To,导航到的继任者 .
快速启动
快速启动 使您可以轻松地导航到VisualStudio中的任何窗口、工具或设置。简单类型 Ctrl+Q键 或者单击IDE右上角的搜索框,搜索您要查找的内容。
编写和重构代码
VisualStudio提供了一套工具来帮助您编写、编辑和重构代码。
基本编辑器功能
通过选择代码行,按住键,可以轻松地上下移动代码行 中高音 ,然后按 上/下箭头键 .
要保存文件,请按 保存 按钮,或按 Ctrl+S键 . 不过,一般来说,使用 全部保存 (Ctrl+Shift+S) .
更改跟踪
任何时候对文件进行更改时,左侧都会出现一个黄色条,指示进行了未保存的更改。保存文件时,该栏将变为绿色。 只要文档在编辑器中打开,绿条和黄条就会保留。它们表示自上次打开文档以来所做的更改。
智能感知
智能感知 是一个强大的代码完成工具,可以在键入时为您提供符号和代码段。C++ 智能感知 在visualstudio中实时运行,在更新代码库时对其进行分析,并根据键入的符号的字符提供上下文建议。当您键入更多字符时,推荐结果的列表将缩小。 此外,一些符号会自动省略,以帮助您缩小所需范围。例如,从类外部访问类对象的成员时,默认情况下将无法看到私有成员或受保护成员(如果您不在子类的上下文中)。
从下拉列表中选择要添加的符号后,可以使用自动完成 标签 , 输入 ,或其他提交字符之一(默认情况下: {}[]().,:;+-*/%%&|^!=?@# ).
提示: 如果要更改可用于完成的字符集 智能感知 建议,在 快速启动(Ctrl+Q) 然后选择 文本编辑器-> C/C++ +高级 选择打开 IntelliSense高级设置 第页。从那里,编辑 成员列表提交字符 带着你想要的变化。如果您发现自己意外地提交了您不想要的结果,或者希望有一种新的方法来这样做,这就是您的解决方案。 这个 智能感知 高级设置页的部分还提供了许多其他有用的自定义设置。这个 成员列表筛选模式 例如,期权对期权的种类有着巨大的影响 智能感知 您将看到的自动完成建议。默认情况下,它设置为 模糊的 ,它使用复杂的算法在键入的字符中查找模式,并将它们与潜在的代码符号相匹配。例如,如果您有一个名为 Myawesome类 你可以键入“MAC”并在你的自动完成建议中找到这个类,尽管省略了中间的许多字符。模糊算法设置了一个最小阈值,代码符号必须满足该阈值才能显示在列表中。
如果您不喜欢模糊过滤模式,可以将其更改为 前缀 , 聪明的 ,或 没有 . 而 没有 不会减少名单的, 聪明的 筛选显示包含与键入内容匹配的子字符串的所有符号。 前缀 另一方面,过滤纯粹是搜索以键入内容开头的字符串。这些设置提供了许多选项来定义 智能感知 经验,值得一试,看看你喜欢什么。
智能感知 不仅仅是指单个的符号。一些 智能感知 建议以代码片段的形式出现,它提供了代码构造的基本示例。代码片段很容易通过旁边的方形框图标来识别。在下面的屏幕截图中,“ 虽然 是自动创建基本 虽然 提交时循环。您可以选择在“高级设置”页中切换代码段的外观。 Visual Studio 2017提供了两个新的 智能感知 帮助您缩小自动完成建议总数的功能: 预测智能感知 ,和 智能感知过滤器 . 看看我们的博客, C++智能感知改进——预测智能感知与过滤 ,以进一步了解这两个功能如何提高工作效率。
如果你发现自己处在一个 智能感知 与您要查找的内容不匹配,并且您已经预先键入了一些有效字符,您可以通过单击 显示更多结果 下拉列表左下角的按钮-看起来像加号(+)-或按Ctrl+J。这将刷新建议,并添加一些新条目。如果你用的是 预测智能感知 ,这是一种可选模式,使用比通常更严格的过滤机制,您可能会发现列表扩展功能更有用。
快速修复
VisualStudio有时会建议改进或完成代码的方法。它以一些灯泡弹出窗口的形式出现,称为 快速修复 . 例如,如果您在头文件中声明一个类,VisualStudio将建议您可以在一个单独的.cpp文件中声明该类的定义。
重构功能
你有不满意的代码库吗?你是否发现自己需要进行彻底的改变,但害怕破坏你的建设或觉得这将需要太长时间?这就是VisualStudio中C++重构特性的所在。我们提供了一套工具来帮助您进行代码更改。目前,VisualStudio支持C++的以下重构操作:
- 重命名
- 提取函数
- 更改函数签名
- 创建声明/定义
- 移动函数定义
- 实现纯虚拟
- 转换为原始字符串文字
这些功能中的许多都在我们的公告博客中提到, VisualStudio中C++重构的全部内容 . 更改函数签名是在之后添加的,但是函数完全如您所期望的那样-它允许您更改函数的签名并在整个代码库中复制更改。您可以通过右键单击代码中的某个地方或使用“编辑”菜单来访问各种重构操作。这也值得记住 Ctrl+R,Ctrl+R 进行符号重命名;这是最常见的重构操作。
此外,请查看 C++快速修复程序 扩展,它添加了许多其他工具来帮助您更有效地更改代码。
有关更多信息,请查看我们的文档 C++中的代码编写与重构 .
使用EditorConfig执行代码样式
Visual Studio 2017内置了对 编辑器配置 ,一种流行的代码样式执行机制。您可以创建 .编辑配置 文件并将其放置在代码库的不同文件夹中,将代码样式应用于这些文件夹及其下的所有子文件夹。安 .编辑配置 文件取代任何其他文件 .编辑配置 并覆盖通过配置的任何格式设置 工具>选项 . 您可以围绕制表符与空格、缩进大小等设置规则。 编辑器配置 当您作为团队的一部分处理项目时,特别有用,例如当开发人员希望签入用制表符而不是空格格式化的代码时,当您的团队通常使用空格时。 编辑器配置 文件可以很容易地作为代码repo的一部分签入,以增强团队风格。
了解有关VisualStudio中EditorConfig支持的详细信息
键盘快捷键参考
对于VisualStudioC++开发人员的一组默认键绑定,请看一下我们的 Visual Studio 2017键盘快捷键参考 .
结论
最后,您可以在我们的官方文档页面上找到有关如何使用visualstudio的其他资源 docs.microsoft.com . 特别是对于开发人员的生产力,我们提供了以下一组文章:
- 在代码和文本编辑器中编写代码 –详细介绍了这方面的更多功能。
- 编写和重构代码(C++) -提供一些C++生产力提示。
- 查找和使用Visual Studio扩展 –许多社区贡献者提交免费和付费扩展,可以改善您的开发体验。