显示当前文件的块层次结构

时间:2017-11-13 14:35:30

标签: phpstorm

在PhpStorm中是否有办法显示我在代码中的位置?我经常被放置在一些蹩脚的自上而下文件的第800行,并且不知道我所处的文件块是什么。

例如,如果我的代码如下:

if (a) {
  // ... 200 lines of code ...
  if (unrelated) {
     // ... 200 lines of code ...
  }
  if (b) { 
     // ... 200 lines of code ...
  } else {
     // ... 200 lines of code ...
     if (c) {
        switch ($var) {
            case 'a':
               [MY CURRENT CURSOR LOCATION]
        }
     } else {
       // ... 200 lines of code ...
     }
  }
}

我希望看到类似的摘要:

if (a) {
  if (b) {} else {
    if (c) {
      switch case 'a':

1 个答案:

答案 0 :(得分:1)

这不适用于PHP(我不确定它是否适用于任何其他受支持的“编码”语言,如JS / Java / Ruby / Python /等)。

对于PHP,它显示最多3个级别:命名空间,类和方法。它不包括控制/逻辑流指令(if / else / for / switch)

对于像HTML / XML / JSON / YAML / CSS(主要是允许嵌套的预处理器)等分层/标记语言,由于其性质,它将显示更多节点。

我现在可以提出的最好的建议会有所帮助(不包括重构这样的代码,因为它超出了范围,可能并不总是可能):

  • CodeGlance插件(将像Sublime一样显示可滚动的小代码概述)。
  • 使用代码折叠来折叠当前不需要的节点(可以是标准节点或自定义文本块)。
  • 如果将鼠标悬停在关闭折叠标记(左侧编辑器边缘上的加/减可点击元素,展开/折叠节点)上,IDE将通过顶部的临时弹出窗口向您显示前5行左右的行 - 很好地确定你所在的最近的“分支”。

部分相关的现有门票:

随时在PhpStorm's Issue Tracker提交您自己的功能请求票。

实现这一点的可能问题可能是“if”条件的预期复杂性(最明显的情况) - 通常它将包含2个可能相当冗长的条件(例如占用2+行)。问题出现在“如何在可用的小面包屑区域中显示它”。