C++打开文件夹和CMake的智能增强

今天的 Visual Studio 2017预览 版本15.6预览2包括两个智能化改进,以简化C++打开文件夹和CGub的代码编辑。我们为C++开放文件夹和CGEAR添加了一种新型的智能感知曲线,以简化跨平台开发。  我们现在还支持一个新的启发式和通配符语法,以包含C++打开文件夹的路径。

null

如果您刚接触CMake或在visualstudio中打开文件夹,请查看如何 开始使用CMake 其他C++项目 .

跨平台智能感知扭曲

如果您在VisualStudio中使用CGube或C++打开文件夹进行跨平台开发,您已经知道 通过定义多个配置 你的目标平台都有高保真的智能感知。  当您在这些配置之间切换时,您将立即看到任何不受支持或对该平台无效的代码的红色曲线。

在最新的预览中,您可能会注意到一种新的IntelliSense波形:

Purple IntelliSense Squiggles

这些紫色的曲线表示,虽然代码对当前选定的配置有效(在本图中, 以远程Linux计算机为目标 ),该行将导致其他配置出错。  在上面的示例中,针对Windows时usleep函数不可用。  这个IntelliSense特性将为您提供一个早期的提示,您需要引入特定于平台的实现。

默认情况下,VisualStudio将检查CppProperties.json在C++打开文件夹或CMAKESETITEN JSON中为CGUID定义的四种配置。  但是,CMake需要记住的一点是,您需要为一个配置至少生成一次缓存,以供IntelliSense引擎考虑。  这可以通过在“开始调试”按钮左侧的下拉列表中选择该配置来轻松完成。

这个特性可以在高级C++选项页面上打开和关闭:

IntelliSense for Inactive Platform Options

注意:这些选项也适用于基于MSBuild的共享代码项目中的紫色曲线。  C++共享代码项目可以用于 UWP与iOS和Android等其他平台共享代码 在Windows和Linux之间 .

包含打开文件夹的路径通配符

直到今天,当您在VisualStudio中打开文件夹时,所有包含路径都必须在CppProperties.json中手动配置。  这在实践中意味着,许多代码库会看到由于缺少头而导致的智能感知错误,即使这些头在代码库本身中很容易获得。

visualstudio的最新预览自动将工作区根目录下的所有文件夹添加到include路径,以简化头文件的检测。  它通过将新引入的通配符语法添加到默认include路径来实现:

"includePath": ["${workspaceRoot}/**"]

这个行为是由CPPaltReals.jSON文件驱动的,就像打开文件夹的C++智能库的其余部分一样。  因此,选择退出这个新行为就像从CppProperties.json中删除新的通配符一样简单。  不过,请记住,如果在今天的预览之前生成了CppPropertie.json文件,则需要手动添加上面的语法以利用此新行为。

例如,可以通过在下面的代码段中添加或删除第10行来启用和禁用启发式:

{  "configurations": [    {      "inheritEnvironments": [        "msvc_x64"      ],      "name": "windows-x64",      "includePath": [        "${env.INCLUDE}",        "${workspaceRoot}/**"      ],      "defines": [        "WIN32", "UNICODE", "_UNICODE"      ],      "intelliSenseMode": "windows-msvc-x64"    }  ]}

虽然这种新的通配符语法也可以用于递归地包含除工作区根目录以外的文件夹,但需要记住一些注意事项。  目前,只有IntelliSense include path(在上面的示例中设置为“includePath”)支持此功能。  例如,通配符不会在中展开 自定义变量 .  当包含大型文件夹时,尤其是当它们包含名称含糊不清的头文件时,还应该小心。  通过在include路径查找的前面添加显式路径,可以解析名称不明确的头。

向我们发送反馈

我们很想了解这些功能是如何为您工作的。  一如既往,我们欢迎您的反馈。  欢迎通过电子邮件发送任何评论 visualcpp@microsoft.com ,通过 推特@visualc ,或Facebook Microsoft Visual Cpp .

如果您在Visual Studio 2017中遇到其他问题,请通过 报告问题 ,这在安装程序和IDE本身中都可用。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享