如何在IntelliJ IDEA中为指定单行代码禁用拼写检查?
IntelliJ IDEA 2021.2.3 社区版 Kotlin 单行禁用拼写检查方案
原有写法失效原因
@SuppressWarnings是Java平台的检查抑制注解,Kotlin不识别该注解对应的IDE检查抑制逻辑,添加后没有任何效果。- 作用域不匹配:即便换成Kotlin原生的
@Suppress("SpellCheckingInspection")加在属性声明上,作用范围也仅覆盖属性名、修饰符等声明节点,不会延伸到初始化块内的字符串字面量,根本碰不到字符串内部的拼写报错。 - Alt+Enter唤出的快速修复菜单默认折叠了单实例抑制选项,默认只展示最高频的「添加到词典」操作,所以找不到忽略当前实例的入口。
- 行注释和目标代码行之间有空行、检查ID大小写写错,也会导致抑制规则不生效。
可落地操作方法
方法1:IDE自动生成抑制规则(零出错,推荐)
不需要记忆任何检查ID,按照步骤操作即可:
- 把光标放到标红的
aabbcc拼写错误片段上,按下Alt+Enter调出快速修复菜单 - 看到「Add to dictionary」选项时不要直接回车确认,按键盘向右方向键
→展开隐藏的子菜单 - 子菜单中选择
Suppress for string literal(仅抑制当前字符串字面量的检查),IDE会自动插入正确格式的抑制注释,拼写报错会立刻消失。
这种方式生成的规则仅对当前字符串生效,全局拼写检查完全正常运行,也不会把aabbcc加入全局词典,后续其他位置出现相同字符串时,拼写检查依然会正常提示错误,完全匹配需求。
方法2:手动编写抑制注释
如果不想走菜单操作,直接删掉之前写的无效@SuppressWarnings注解,在目标代码行的紧上方(中间不能有空行)添加如下注释即可:
// noinspection SpellCheckingInspection private const val API_KEY = "aabbcc123"
注意检查IDSpellCheckingInspection的大小写必须完全匹配,注释和代码行之间不能插入空行,否则规则不会生效。
避坑提醒:不要试图在属性上添加
@Suppress注解解决这个问题,属性级注解的作用域覆盖不到字符串字面量内部,无法消除该报错。
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

