Visual Studio Code C/C++ 扩展2017年8月更新

[原文发表地址] Visual Studio Code C/C++ extension August 2017 Update

[原文发表时间] 2017/08/22

上周我们2017年8月的更新发布到Visual Studio Code C/C++ 扩展。除了修复了几个问题,此更新还包括一个新的可以重置智能感应数据库文件命令,并继续改进到新的基于编译器的智能感应引擎。感谢所有在过去几个月内为我们提供关于新的智能感应引擎反馈意见的人!

“Reset IntelliSense Database”命令

扩展发布的“Tag Parser”,用于为某些智能感应功能提供快速但“模糊”的查询结果。它还被用作由基于新的基于编译器的智能感应引擎提供的其他智能感应功能的后备解决方案,例如快速信息工具提示,错误曲线和类/结构/命名空间成员的自动完成。标签解析器从源文件构建符号数据库,并将数据库文件(.BROWSE.VC.DB)存储在您在VS Code中打开的每个文件夹的磁盘上。

但是,当符号所在的路径从browse.path设置中删除后,标记解析器目前不会自动从数据库中删除符号。随着一些无关符号信息被遗留在数据库中,一些智能感应和代码浏览功能可能会提供不太精确的结果。例如,“Go to definition”可能会导航到一个无关的符号。我们正在努力使数据库始终与browse.path设置引用的符号相匹配,但在此期间,你如果遇到这种情况,一种恢复方法是清理数据库文件,允许它再次构建。在这个更新中,我们添加了一条新的命令“Reset IntelliSense Database”,这个命令可以在磁盘上找到数据库文件,然后删除它,再重新构建一个新的。您可以通过命令面板访问命令,如下屏幕截图所示。

请注意,该命令目前可以重置的数据库文件仅是在VS Code中第一次打开的文件夹。如果您使用VS Code Insiders构建,这将允许您在VS Code中打开多个文件夹,但该命令不会清除任何随后打开的文件夹。我们将在以后的更新中添加对多个文件夹的支持。

新的智能感应体验

在4月份首次发布的新的智能感应体验在VS Code Insiders作为默认设置,并且根据过去几个月收到的反馈(感谢所有向我们发送反馈的人们),已经大大改善了这个功能。现在我们觉得这是一个很好的时机,逐渐对更多用户将这个功能设置为默认功能。新的智能感应引擎是与Visual Studio中多年来为C++智能感应和代码浏览功能提供支持的引擎相同的。对于VS Code,到目前为止,我们已经使用新引擎实现了几个智能感应功能,包括针对类/结构/命名空间成员的自动完成建议,快速信息工具提示和错误曲线(语言分析)。这些功能现在可以提供比基于标签的智能感应更好、更准确的结果。您可以通过查看settings.json文件中的“C_Cpp.intelliSenseEngine”设置值(从菜单File->Preferences->Settings打开)来查看使用的智能感应引擎。将值更改为“默认”将为您提供全新的智能感应体验。我们鼓励大家尝试一下,让我们知道您的想法。随着我们新的智能感应引擎推出更多的功能您的反馈将有助于我们塑造功能。

此次扩展允许新的智能感应体验首先尝试使用新的智能感应引擎完全解析所有已打开的文件。如果它发现找不到头文件或依赖关系,它将返回到标签解析器,并提供原始的模糊智能感应行为。博客Visual Studio Code C/C++ 扩展2017年6月更新详细介绍了后备行为如何工作以及如何控制它。

告诉我们你的想法

我们鼓励大家尝试新的智能感应并向我们发送反馈。 下载Visual Studio Code 的C/C ++扩展,尝试一下,让我们知道你的想法。关于GitHub的文件问题和建议。 如果您还没有提供反馈意见,请参加这项快速调查,以帮助我们根据您的需求制定这一扩展。