编辑器中的问题
问题在编辑器中以波浪线标出,并在滚动条上做标记。编辑器右上角的微件按严重性显示问题数量(没有问题时显示对勾),单击它打开 问题 工具窗口。鼠标停在带下划线的代码上即可看到消息。
问题 工具窗口有两个标签页:文件(当前编辑器)和 项目错误。在它的选项菜单中可以按严重性或名称排序、显示预览、自动滚动到源代码。
快速修复与意图操作
光标所在行有可用操作时会出现灯泡图标。显示上下文操作 先列出光标处问题的快速修复(首选项加粗),然后是语言服务器提供的意图操作和重构,以及插件提供的操作。大多数条目都能预览改动。
应用快速修复 不打开列表,直接对光标处或光标所在行上最严重的问题应用首选(或第一个)修复。
在某个问题条目的子菜单(
→)中,还可以打开该检查的设置、禁用该检查或更改它的严重性。这些改动会写入当前生效的检查配置文件。
检查配置文件
设置 › 编辑器 › 检查 按语言或领域分组列出所有检查,每项都有开关和严重性:错误、警告、弱警告 等。语言服务器报告过问题后才会出现在这里,它的各个诊断代码也会在出现后作为单独的条目列出。- 默认 保存在 IDE 设置中,对所有项目生效。
- 项目默认 保存在项目中。
- 通过齿轮菜单可以复制配置文件、把它复制到 IDE 级或项目级、重命名或删除。
分析整个范围
以下命令都在 代码 菜单中:
- 代码 › 检查代码… 在指定范围内运行语言服务器的诊断,结果按严重性、检查项和文件分组显示在 检查结果 工具窗口中。范围可以是整个项目、某个模块或目录、当前文件、未提交的文件或自定义范围。没有语言服务器的文件会被跳过。
- 代码 › 分析代码 › 检查当前文件 对当前打开的文件做同样的检查。
- 代码 › 代码清理… 在指定范围内逐个文件应用语言服务器的自动修复、优化导入并重新格式化,然后保存。超过 100 个文件时会先确认,可以在后台任务弹窗中取消。
- 代码 › 分析代码 › 查找重复代码… 用基于词法单元(token)的克隆检测查找重复代码。可以设置以 token 计的最小长度,以及是否把标识符和字面量匿名化(这样只有名字不同的代码也能匹配)。结果显示在 重复项 工具窗口中。
结构化搜索与替换
编辑 › 查找 › 结构化搜索… 和 编辑 › 查找 › 结构化替换… 按语法树而不是文本匹配代码。选择语言后,用占位符写模板:$name$或$NAME匹配一个语法节点;$$$NAME匹配任意数量的节点(参数、语句);- 同一个占位符出现两次时,两处必须匹配相同的代码。
$e$.unwrap() 配合替换模板 $e$.expect("todo"),会把所有 unwrap() 调用改写掉并保留调用者。搜索结果显示在 查找用法 工具窗口中;替换会先预览,再作为一次改动应用。匹配基于 ast-grep 的匹配器和内置的 tree-sitter 语法。
拼写检查
校对 › 拼写错误 检查会用内置的英语(美式和英式)词典以及一份编程术语表,检查注释、字符串字面量和声明的名称中的单词。camelCase 和 snake_case 名称会被拆成单词检查。
在拼写错误上按 ⌥↵ / Alt+Enter 可以:
- 拼写错误:更改为…(注释、字符串和文本)或 拼写错误:重命名为…(声明的名称,通过重命名完成,引用会一并更新);
- 把这个词保存到项目级或应用程序级词典。
提交之前
提交对话框可以在提交前对改动的文件运行 分析代码 和 检查 TODO,见 版本控制。限制
- 检查来自语言服务器和少量内置检查,没有 IntelliJ IDEA 那样大量的 IDE 内置检查;能看到什么取决于该语言配置的服务器。
- “检查代码”和“代码清理”会跳过没有语言服务器的文件。