intellij-idea Intellij IDEA SDK -如何以编程方式处理拼写检查'输入错误'?

xuo3flqw  于 2022-11-01  发布在  IntelliJ IDEA
关注(0)|答案(1)|浏览(188)

写了一个插件来处理一些自定义格式的东西在yaml文件,我已经写了一个巨大的项目。这是一个聊天机器人,可以在大量的方式作出React。有很多俚语和非标准的话在yaml。
我不想禁用拼写检查,因为我想修复合法的拼写错误。但“拼写错误”俚语下的注解与我的插件中的注解冲突,并导致问题。
一个yaml文件有349个“错别字”。10%左右是合法的。其余的是俚语和自定义单词。
我需要做以下两件事之一。要么将这些单词添加到词典中(我已经找到了实现这一点的方法- SpellCheckManager.getInstance(project).acceptWordAsCorrect()),要么获取这些单词的列表,并根据它们创建一个自定义词典。这两种方法都需要我获取文档/编辑器/项目中所有拼写错误的列表。
这就是我找不到的部分。到处都找过了。(当前注解列表?当前问题列表?)谷歌搜索了我的手指。有人能给我指出正确的方向吗?

k0pti3hp

k0pti3hp1#

这不是理想的解决方案,但它为我的手段工作,我离开的情况下,这是谷歌的答案。
在DaemonCodeAnalyzerImpl中,有一个方法:

DaemonCodeAnalyzerImpl.getHighlights(Document document, HighlightSeverity minSeverity, Project project);

这将返回文档中所有高亮显示的列表。该方法使用@TestOnly进行注解,并且文档声明它只应在测试代码中使用,因为它中断了访问测试代码的正常方式。但是,它仍然可以在非测试代码中工作。
由于我唯一需要的是拼写错误的字符串,所以我提取了列表,然后循环遍历列表中的HighlightInfo,并提取了.getText()。
没有搞砸任何事情的危险。
然后把那些弦全部推成:

SpellCheckerManager.getInstance(project).acceptWordAsCorrect(word, project);

Viola!所有当前突出显示的错别字现在都已添加到词典中。

  • 合适 * 的解决方案?不。对我需要完成的事情来说足够好?是的。

相关问题