如何让Visual Studio拼写检查器*实际*工作?

How to get the visual studio spell checker to *actually* work?

提问人:Mike Nakis 提问时间:10/5/2023 最后编辑:Mike Nakis 更新时间:11/22/2023 访问量:131

问:

我有一个包含许多项目的解决方案。

我使用 EditorConfig,我的 .editorconfig 文件处于解决方案级别。

我的 .editorconfig 文件在解决方案级别指定了一个自定义单词列表(Microsoft 术语中的“排除文件”)。

在随机时刻,Visual Studio 拼写检查器会忘记我的自定义单词列表中的所有单词。

当我编辑代码时,我突然意识到很久以前已经添加到自定义单词列表中的所有单词突然又开始出现蓝色波浪线,就好像它们是拼写错误一样。

所以,我的问题是:

有谁知道任何修复、技巧、

魔法咒语或其他巫术

这会阻止这种情况发生吗?


笔记:

  • 我知道摆脱这种情况的唯一方法是退出 Visual Studio,然后重新启动 Visual Studio。我必须在一个工作日内多次这样做。这显然不是一个站得住脚的解决办法。

  • 如果我指示拼写检查器在拼写检查器处于这种脑损伤状态时添加一个单词(用微软的话来说是“排除”它),那么我观察到拼写检查器表现出不同的行为:

    • 波浪线消失了,但这些单词再次添加到我的“exclusion.dic”中,因此它现在有重复的条目。

    • 波浪线消失了,但这些词被添加到一些完全无关紧要的、无用的、有害的、什么样的白痴认为它会是一个好主意。%LOCALAPPDATA%\Microsoft\VisualStudio\17.0_1d6fcdbd\exclusion.dic

  • 我认为有一次情况自行解决:在一个随机的时刻,错误的蓝色波浪线突然消失了。但这一定是极其罕见的现象,因为我只见过一次。我还不如做梦。

  • 有几次,通过关闭解决方案并重新打开解决方案而不重新启动 Visual Studio,这种情况似乎得到了解决,但大多数时候我尝试它不起作用,并且重新启动 Visual Studio 是必要的。

  • 我曾经认为删除目录也是必要的,但事实并非如此:只需重新启动 Visual Studio 而不删除目录即可自行修复。.vs.vs

  • 如果很重要,我正在使用 ReSharper,并且我已经禁用了 ReSharper 的拼写检查器。(请注意,这曾经工作正常。

  • 我本来会向微软提交一个错误,但为了提交一个错误,你必须先注册,而他们的注册机制被破坏了,所以我无法注册。(我想这是确保错误报告数量少的一种方式。

  • 拼写检查器于 2023 年初引入 Visual Studio,它充满了错误。(这是低于发布质量的 waaaaay。从那时起,每个版本,他们都在修复错误,通常没有在发行说明中承认这一点。根据微软的这条评论,据称包含拼写检查器错误修复的最新版本是从 2023 年 10 月 25 日开始的,但我有它,问题仍然存在。

  • 我使用 ,但删除这一行没有区别。spelling_use_default_exclusion_dictionary = false

  • 我的是 utf8-bomless;将其更改为 UTF8-with-BOM 没有区别。exclusion.dic

  • 我的 .editorconfig 中选择我的自定义单词列表的行是 ;将其更改为或似乎没有改善任何事情。spelling_exclusion_path = ./exclusion.dic.\exclusion.dicexclusion.dic

  • 我的 .editorconfig 中的相关条目:

 

[*.{cs,vb}]
spelling_languages = en-us
spelling_checkable_types = strings, identifiers, comments
spelling_exclusion_path = ./exclusion.dic
spelling_use_default_exclusion_dictionary = false

更新 1

我尝试禁用ReSharper,但问题仍然存在,因此不应责怪ReSharper。

更新 2

因此,这似乎是一个复杂且难以捉摸的问题,实际上有许多不同的子问题,具有相似的影响。我能够可靠地重现一个子问题,如下所示:

  • 使用 ReSharper 重命名重构类的属性。

重命名-重构是在 C# 文件上完成的,该文件还包含自定义单词列表中的一些字符串,重构不仅影响 C# 文件,还影响 XAML 文件。重构完成后,将出现蓝色波浪线。

发生这种情况时,可以通过重新加载解决方案来修复它。

如果我禁用 ReSharper,则使用 Visual Studio 重命名-重构功能重命名相同的符号不会导致任何问题。

请注意:此问题的其他子问题仍未解决:在使用 ReSharper 进行重命名重构以外的操作时,可能会出现蓝色波浪线(即使禁用了 ReSharper 插件,它们也可能会出现),在这些情况下,需要完全重新启动 Visual Studio 才能使蓝色波浪线消失。

更新 3

我导出了我的 Visual Studio 设置,进行了修复,并重新导入了我的 Visual Studio 设置;什么都没修好。

更新 4

Visual Studio 版本 17.8.0 中仍然存在问题

更新 5

Visual Studio 版本 17.8.1 中仍然存在问题

visual-studio 拼写检查 编辑器配置

评论

0赞 Hans Passant 10/29/2023
developercommunity.visualstudio.com/t/......
0赞 Mike Nakis 10/29/2023
@HansPassant感谢您的链接,但该问题是关于 Visual Studio 在重新启动后不记得自定义单词,而我的问题是 Visual Studio 除非重新启动,否则不会记住自定义单词。(-:= 尽管如此,我还是会仔细阅读该期的清单。

答: 暂无答案