Webstorm JetBrains IDE中范围内的重构

Webstorm JetBrains IDE中范围内的重构,webstorm,jetbrains-ide,Webstorm,Jetbrains Ide,我想重构函数内部的变量,但只重构该函数内部的变量。这在JetBrains IDE中可能吗 例如: var global = 0; function func1 (val) { if (val === global) { doSomething(); } else if (val * 2 === global) { doSomethingElse(); } else { doSomethingElseEntirely();

我想重构函数内部的变量,但只重构该函数内部的变量。这在JetBrains IDE中可能吗

例如:

var global = 0;

function func1 (val) {
    if (val === global) {
        doSomething();
    } else if (val * 2 === global) {
        doSomethingElse();
    } else {
        doSomethingElseEntirely();
    }
}

function func2 (val) {
    if (val === global) {
        doSomething();
    } else if (val * 2 === global) {
        doSomethingElse();
    } else {
        doSomethingElseEntirely();
    }
}
如果我试图通过重构来更改
func1
中的变量
global
,它将在所有globals范围内更改,因此在
func2
中也会更改。我想防止这种情况发生。这可能吗?

据我所知,“当前文件”是可能的最小范围

解决方法:

为了用最少的努力获得你想要的,我建议使用普通搜索

  • 搜索“全局”(Strg+F)
  • 将光标放在函数中第一次出现“全局”之前或之上(以获得正确的起点并从搜索字段中移除焦点)
  • 根据需要经常单击“为下一次事件添加选择”(或Alt+J)
  • 通过键入新名称一次重命名所有事件

  • 这里需要一些手动操作,但我认为这是实现大型功能的最快方法。

    这里有一个更简单的解决方法

  • func1
    中添加一个虚拟
    var global
  • 使用重构>重命名工具(Shift+F6),同时选择
    func1
    中出现的任何
    global
  • 删除步骤1中添加的行(将插入符号放在行中并按Ctrl+Y)
  • 您正在尝试重构全局变量。。所以不,你的方案是不可能的。您的选项:多插入符号编辑或在选择中简单查找/替换。