WebStorm 将重构范围限制为仅当前文件

WebStorm limit refactor scope to current file only

编辑:这是我创建的问题的 link [ https://youtrack.jetbrains.com/issue/WEB-21956 ]

是否可以将 WebStorm 的重构范围限制在您发布重构的文件中(默认情况下)?

在这种情况下,我有一个正在编辑的文件,我想重构(重命名)一个变量。 WebStorm 然后对整个项目中的所有文件进行搜索。我在网上搜索过这个,但只能找到特定文件夹的范围限制。我希望我不会为每个文件创建范围。

P.S. 我找到了这个相关问题 ()。虽然我无法对此发表评论,因为我还没有 50 个代表(很遗憾)。如果它不在 PyCharm 中,那么它很可能不在 WebStorm 中(他们共享代码),所以这更像是一个双重检查。如果事实证明它确实不存在,我将添加一个 link 到我将发布到 WebStorm 问题的功能请求中。

从 WebStorm 2016.1.3 开始,似乎无法更改 Rename Refactoring 默认 行为。唯一可用的选项是在 limited scope, in which case you can enable or disable the in-place mode (see docs).

内重命名

这里有两种可能的工作流程。我将使用 PC 键盘快捷键给出说明,但您可以通过上下文菜单实现相同的目的。


查找和替换

  1. 将插入符号移动到您要重命名的符号处
  2. Select单词用Ctrl+W
  3. 使用 Ctrl + R
  4. 打开替换对话框
  5. 点击 Tab 并输入新名称
  6. Alt + P 替换当前匹配项或 Alt + A 替换所有出现的地方

重命名重构工具

  1. 使用 Shift + F6
  2. 打开重命名重构工具
  3. 输入新名称
  4. 调整 Search in comments and stringsSearch for text occurrences 的过滤器(默认打开)
  5. 预览重构 (Alt + P)
  6. Find Refactoring Preview 窗格将显示(Alt + 3 聚焦),列出所有找到的事件
  7. 在此列表中,您可以select重构将在哪些文件中进行;例如,您可以通过在父组中按 Delete 来排除所有文件,然后仅在目标文件
  8. 中按 Insert

在这个(愚蠢的)示例中,我将 require 重命名为 require2。发现了几个事件。我通过排除主要组来排除所有这些,然后只包含一个文件。我也可以排除其余的组,或者 select 使用 Ctrl + A 编辑所有内容,然后 Delete 排除。


另见

  • Limit Refactoring Scope in Webstorm
  • Is there any way to tell IntelliJ IDEA not to look at files during a search/replace or during refactorings?