重构此项
重构此项… 只列出在当前光标或选区处适用的重构:先是下表中的重构,然后是语言服务器在此处提供的其他重构(例如 TypeScript 的“Convert to arrow function”)。
可用的重构
重命名
1
开始重命名
把光标放在名称上,按
⇧F6 / Shift+F6。名称会变成可在原地编辑,文件中的其他出现位置随输入同步变化。2
完成或取消
按
↵ / Enter 或 ⇥ / Tab 在整个项目中应用重命名,按 Esc 恢复原名。3
需要更多选项时用对话框
再按一次
⇧F6 / Shift+F6 改为打开重命名对话框。引入与提取
引入变量、引入常量、引入字段、引入参数 和 提取方法 的用法相同:- 选中表达式或语句。只放了光标时,会弹出光标周围的表达式供选择,在列表中移动时对应的表达式会被高亮。
- 如果表达式出现了多次,选择只替换这一处还是全部替换(找到多个匹配项)。
- 接着在原地编辑新名称,
↑/↓在推荐名称之间切换,↵/Enter确认。
移动、复制和重命名文件
在项目视图中,重命名…(⇧F6 / Shift+F6)、移动…(F6、拖放或剪切后粘贴)和 复制…(F5、复制后粘贴,或按住 ⌥ / Alt 拖动)会打开对话框。勾选 搜索引用 后,支持此功能的语言服务器会更新对该文件的引用(例如 TypeScript 的 import);在注释和字符串中搜索 会把注释和字符串也算进去。改动会先显示预览。
在编辑器中对符号执行 移动…,会调用该语言服务器的移动重构(如果有的话)。
安全删除
1
开始
把光标放在声明上按
⌘⌦ / Alt+Delete,或在项目视图中对文件使用 安全删除…。2
确认
确认删除,可以选择同时搜索注释和字符串。
3
检查用法
如果符号仍被使用,会弹出 检测到用法,可以选择 查看用法、仍然删除 或
取消。没有用法时,声明连同它的文档注释和注解一起删除,整体算一步撤销。
上拉成员与下推成员
用于在 Java 类和它的父类或子类之间移动字段和方法。在对话框中选择成员和目标类;移动会引起的问题会先在 检测到问题 中列出,再决定是否继续。这两项由 OpenIDEA 自带的 Java 扩展提供,其他语言不可用。撤销
一次重构就是一步撤销,即使它改了多个文件。多文件重构完成后,通知中会提供 撤消(撤销后变为 重做)。限制
- 除了重命名、安全删除和基于语法树的兜底实现,其他重构都需要语言服务器运行并提供相应功能。缺少时先看状态栏的 语言服务 微件。
- 只有当服务器把签名重写作为代码操作提供时,才会出现更改签名。
- 这个菜单里没有结构化搜索替换;见 代码检查 中的 编辑 › 查找 › 结构化替换…。