【问题标题】:Can IntelliJ "navigate declaration" be configured to honor split editorsIntelliJ“导航声明”可以配置为尊重拆分编辑器吗
【发布时间】:2014-03-18 18:13:11
【问题描述】:

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

基本用例很简单:

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

但是,当使用拆分窗口时,事情会变得很奇怪:

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

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

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

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

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

【问题讨论】:

  • 我建议你打开一个功能请求:youtrack.jetbrains.com
  • 这听起来是个好主意。我会去做。也许这是一个学习如何创建插件的好机会?
  • 我无法描述我对这个功能的渴望程度。导航回我的工作文件让我很生气,但我的其余窗口处于混乱状态。我尝试将一个键映射为“在对面的窗口中打开”,这样默认情况下,我所在的窗口会显示该文件。但很难记住何时需要复制窗口(即:如果它是新的)。
  • 在我看来,这个问题并没有引起太多关注。我以前没有创建过 IntelliJ 插件,但我想知道是否有人可以创建一个来做到这一点?

标签: java tabs intellij-idea editor


【解决方案1】:

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

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

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

【讨论】:

  • 对,这基本上我也是这样做的。
猜你喜欢
  • 1970-01-01
  • 2011-05-31
  • 2011-11-18
  • 2021-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-31
相关资源
最近更新 更多