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

Gar*_*ary 6 java tabs editor intellij-idea

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

基本用例很简单:

  1. 在只打开一个类的情况下开始使用 IntelliJ IDEA,将其命名为“ClassA”。ClassA 具有对 ClassB 的引用。
  2. 使用“导航->声明”导航到 ClassB。IntelliJ 将为 ClassB 打开一个新选项卡并在编辑器窗口中显示这个类。ClassA 在编辑器中不再可见。
  3. 使用“导航->返回”。ClassA 选项卡现在在一个编辑器窗口中再次可见。使用键盘快捷键,这可以是一种非常快速的代码导航方式。

但是,在使用拆分窗口时,事情表现得很奇怪:

  1. 在编辑器窗口中打开几个类文件。
  2. 拆分窗口(工具-> 编辑器选项卡-> 垂直拆分)。
  3. 在左侧选项卡组中,导航到一个有趣的代码部分,即我们想暂时参考的部分。
  4. 在右侧选项卡组中,将光标定位在所引用的类上并选择 Navigate->Declaration。

如果该类已在左侧选项卡组中打开,IntelliJ 将在左侧编辑器中将该选项卡放在前面,替换我选择查看的一个类。但是,如果该类尚未在任何选项卡组中打开,IntelliJ 将在右侧选项卡组中打开文件。这与不使用拆分编辑器时发生的情况基本相同。

更糟糕的是,“导航->返回”操作现在确实会导航回右侧的原始类,但不会更改左侧的任何内容,即我打算暂时引用的一个类是不可见的.

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

真正好的是像“在当前选项卡组中导航->打开声明”这样的操作。这存在吗?可以为此创建插件吗?

Jus*_*tin 1

我有同样的问题,但我有一个适用于大多数情况的解决方法:

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

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