IntelliJ“导航声明”可以配置为尊重拆分编辑器

时间:2014-02-18 19:10:23

标签: java tabs intellij-idea editor

我一直在IntelliJ IDEA中使用“导航声明”。我想将它配置为在使用拆分编辑器时表现略有不同。

基本用例很简单:

  1. 开始使用IntelliJ IDEA,只打开一个类,调用它 “ClassA的”。 ClassA引用了ClassB。
  2. 使用“导航 - >声明”导航至ClassB。 IntelliJ将为ClassB打开一个新选项卡,并在编辑器窗口中显示该类。编辑器中不再显示ClassA。
  3. 使用“导航 - >返回”。现在,在一个编辑器窗口中再次显示ClassA选项卡。 使用键盘shorcuts,这可以非常快速地导航代码。
  4. 但是,使用拆分窗口时,事情会很奇怪:

    1. 在编辑器窗口中打开几个类文件。
    2. 拆分窗口(工具 - >编辑器标签 - >垂直拆分)。
    3. 在左侧标签组中,导航到一个有趣的代码部分,即我们想要引用一段时间的部分。
    4. 在右侧选项卡组中,将光标置于要引用的类上,然后选择“导航” - >“声明”。
    5. 如果此类已在左侧选项卡组中打开,则IntelliJ将在左侧编辑器中将该选项卡向前移动,替换我选择查看的一个类。但是,如果该类尚未在任何选项卡组中打开,IntelliJ将在右侧选项卡组中打开该文件。这与未使用拆分编辑器时的情况基本相同。

      更糟糕的是,“Navigate-> Back”动作现在确实会导航回到右侧的原始类,但是不会改变左侧的任何内容,即我想要引用的一个类。虽然不可见。

      因此,“导航 - >开放声明”操作的行为取决于IntelliJ本身的状态,而不是我的意图。我不希望intelliJ随意决定在哪个分割窗口中显示文件。我宁愿它只在光标固定的选项卡组中打开声明。

      什么是非常好的是像当前标签组中的“导航 - >打开声明”这样的操作。这存在吗?可以为此创建一个插件吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,但是我有一种适用于大多数情况的解决方法:

在“设置”>“编辑器”>“常规”>“编辑器”选项卡中,并在“关闭策略”下,将选项卡限制设置为1。这将强制每个拆分使用一个选项卡,从而防止在导航到符号时打开另一个拆分中的隐藏选项卡在里面。进行声明时,如果目标文件在拆分中,它将进入该文件;如果该文件不存在,它将替换拆分中的选项卡。这在大多数情况下都有效,如果您不希望intellij拆分更改要查看的文件部分,可能会变得更棘手,但是在大多数情况下,它可以工作。

(此外,我通常不使用标签来记住哪些文件,我通常使用“最近使用的文件”窗口进行导航)。