IntelliJ-代码折叠后仅复制可见文本吗?

Aar*_*son 7 copy intellij-idea code-folding folding

是否可以在IntellJ中折叠较大的代码块,选择包含折叠部分的代码部分,并仅复制可见的文本?

例如,如果我有一个JSON文件,例如:

{
    "list1" : [
         1,
         2,
         3
     ],
    "list2" : [
         "a",
         "b",
         "c"
     ]
}
Run Code Online (Sandbox Code Playgroud)

然后折叠列表,以便IDE将其显示为:

{
    "list1" : [...],
    "list2" : [...]
}
Run Code Online (Sandbox Code Playgroud)

有没有办法只复制上面显示的文本?常规副本包括从视图中隐藏的代码。

小智 3

有趣的是,在 IDEA 中复制时,它会保持折叠状态(例如参见IDEA-139523所附的屏幕截图)。这意味着数据以某种方式位于剪贴板中,尽管它可能只是其他程序无法读取的 IDEA 特定格式。

执行您所要求的操作的一般功能请求似乎在 JetBrains 票证跟踪系统中为IDEA-126233。其中没有任何迹象表明有解决方法或何时可以解决。

不幸的是,您的选择似乎受到限制。

  1. 您可以使用另一个答案中建议的外部工具来进行您需要的格式化。特别是如果它仅限于 JSON 格式,您也许能够找到一些其他可以在开发环境中运行的独立工具,以满足您的安全和性能要求。
  2. 我建议在 JetBrains 票务系统中为该票投票。可能无法完成很多工作,但至少让他们知道其他人会发现它有用。如果您有可能相关的进一步解释或描述,但您认为现有票证中描述得不够好,您可以添加您的评论以帮助充实它。
  3. 由于数据似乎位于 IDEA 剪贴板中的某个位置,因为它在应用程序内复制时保留了折叠,因此大概可以在某种插件中添加此“按显示复制”功能。如果您确实需要这个并且找不到可以实现此目的的现有插件,您可能想看看自己编写这个插件有多难。
  4. 如果您有 JetBrains 支持合同,您可能需要联系他们,看看他们是否可以为您提供进一步的帮助。虽然我怀疑他们除了注意到您对他们系统中已有的票证开发的兴趣之外还能做更多的事情,但询问也没什么坏处,也许他们知道其他一些对您有用的解决方法。

很抱歉这个答案不太令人满意,但我怀疑这是目前最好的答案。