在JetBrains IDE中重构内部范围

时间:2016-05-01 20:50:15

标签: webstorm jetbrains-ide

我想在函数内部重构变量,但只在函数内部重构。这在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();
    }
}

如果我尝试通过重构更改global内的变量func1,它将在所有全局范围内更改,因此在func2中也是如此。我想阻止这个。这可能吗?

2 个答案:

答案 0 :(得分:1)

这是一个更简单的解决方法。

webstorm refactoring

  1. var global内添加虚假func1
  2. 使用重构>重命名工具( Shift + F6 ),同时在global中选择任意func1
  3. 删除第1步中添加的行(将插入符号放入行中并按 Ctrl + Y )。

答案 1 :(得分:0)

据我所知"当前档案"是可能的最小范围。

解决方法:

为了用最少的努力实现你想要的东西,我建议使用普通搜索。

  1. 搜索"全球" (Strg + F)
  2. 将光标放在" global"的第一个出现之前或之上。在你的函数中(获得正确的起点并从搜索字段中删除焦点)
  3. 点击"添加下一个选择的选择" (或Alt + J)根据需要经常使用
  4. 通过输入新名称
  5. 立即重命名所有出现的内容

    这里需要一些手工工作,但我认为这是大功能的最快方式。