改进拼写检查器
欢迎访问我们关于VisualStudio17.6预览版2中拼写检查功能的最新博客文章!我们很高兴与您分享我们对此功能所做的最新改进,该功能最初是在针对C#、C++和标记文件的Visual Studio 17.5预览版中引入的。我们从像您这样的开发人员那里收到了大量宝贵的反馈,这有助于在该功能发布到发布渠道之前对其进行塑造和完善。
如果您是拼写检查器功能的新手,请查看我们的早期博客帖子作为介绍。否则,让我们深入了解VisualStudio17.6预览版2中令人兴奋的增强功能!
编程语言专用词典
我们听到的最大反馈是关于假阳性。拼写检查器使用与检测到的口语相同的词典。我们添加了启发式以补偿代码如何使用这些单词,因此HelloWorld之类的构造将进行正确的拼写检查,但开发人员使用的许多单词不是我们口语的一部分。像“guid”或“args”这样的单词通常出现在代码文档中,但拼写检查器会将其标记为拼写错误的单词。
在这次更新中,我们与C++和C#团队合作,添加了专门用于检测这些语言中常用单词的语言的排除词典。这将大大减少误报的数量,尤其是在注释代码片段时。在这篇文章的后面,我们将讨论我们添加到editorconfig中的开关,如果用户想禁用它,它可以控制这种行为。
排除字典编码
许多人遇到的另一个问题是拼写检查器使用的排除字典的编码。Visual Studio将使用拼写排除路径
在editorconfig文件或exclusion.dic文件中切换%localappdata%\Microsoft\VisualStudio\<版本>
如果找不到交换机,则返回目录。在这两种情况下,拼写检查API都要求排除文件具有“UTF-16 with BOM”编码才能正常工作。我们收到了多份编码被破坏的报告,特别是当用户手动修改这些文件以删除排除的单词时。
通过此更新,我们改进了VisualStudio处理排除文件的方式。UTF-16编码不再是必要的,因此用户应该能够在不遇到编码问题的情况下修改排除字典。
更好的特殊情况处理
我们也感谢那些抓到一些我们没有想到的案件的人。基于此反馈,我们为一些特殊情况添加了其他改进:
- 包含URL的字符串(例如,“
https://。。。
“或”邮寄至:。。
”.) 不会对整个字符串进行拼写检查。
- 反斜杠将省略拼写检查中的后续字符。例如“
\纳洛
“将不再标记为拼写错误,因为'n个
'被省略并且'你好
'是拼写正确的单词。
- 不再推荐包含标点符号的建议。例如“
杂项。
“将不再推荐,因为它可能导致代码无法编译。
自定义拼写检查器
我们添加了拼写_use_default_exclusion_dictionary
在此更新中切换到editorconfig。为方便起见,以下是可用选项的完整列表:
spelling_anguages=_language_[,_language _]
(例如:=en-us,fr-fr)
- 这列出了Visual Studio要使用的语言。在本例中,VisualStudio在检查拼写问题时只使用en-us和fr-fr字典。请注意,必须在用户的计算机上安装fr-fr语言包,否则Visual Studio会错误地将任何法语单词标记为拼写错误。
spelling_checkable_types=字符串、标识符、注释
(例如:=标识符、注释)
- 这将控制Visual Studio应检查的内容。在本例中,VisualStudio将检查标识符和注释中拼写错误的单词,但不会检查字符串内部。
spelling_error_seiverty=错误或警告或信息或提示
(例如:=error)
- 这控制Visual Studio将为错误列表中的拼写错误指定的严重性。在本例中,拼写错误将显示为错误。
spelling_exclusion_path=排除字典的绝对或相对路径。
(示例:=.\exclusion.dic)
- 这允许您创建自己的排除词典,以指定您认为拼写正确的单词。排除字典是一个简单的文本文件,可以检入到源代码管理中,其中文件中的每一行都包含一个单词,该单词应该被视为拼写正确的单词。在本例中,首次对解决方案中的任何文件运行拼写检查器时,Visual Studio将在.sln文件所在的目录(对于C#项目)或根目录(对于C++目录)中检查exclusion.dic文件。如果不存在文件,拼写检查器将创建一个文件。然后,每当您选择忽略一个单词时,它都会被添加到这个exclusion.dic文件中。Visual Studio会将此exclusion.dic文件中出现的任何单词视为拼写正确的单词。
spelling_use_default_exclusion_dictionary=真或假
(例如:=spelling_use_default_exclusion_dictionary=false)
- 这将控制是否使用特定于语言的排除词典。设置为false时,将不使用C++或C#特定排除词典中指定的任何单词。默认值为true。
你的反馈很重要!
我们非常重视用户的反馈,并对收到的积极反应感到兴奋。您的输入直接影响了我们对Visual Studio的改进,我们渴望继续改进产品以满足您的需求。我们前面有一个雄心勃勃的路线图,您的反馈将帮助我们确定工作的优先顺序。让我们继续对话开发者社区,感谢您成为Visual Studio社区的重要组成部分!
但丁·加涅
Visual Studio高级产品经理