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

时间:2016-07-26 22:00:10

标签: intellij-idea copy folding code-folding

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

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

{
    "list1" : [
         1,
         2,
         3
     ],
    "list2" : [
         "a",
         "b",
         "c"
     ]
}

我折叠列表,以便IDE将它们显示为:

{
    "list1" : [...],
    "list2" : [...]
}

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

2 个答案:

答案 0 :(得分:2)

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

执行您所要求的内容的常规功能请求似乎在JetBrains故障单跟踪系统中为IDEA-126233。没有迹象表明有一种解决方法或什么时候可以开展工作。

不幸的是,您的选择似乎有限。

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

答案 1 :(得分:1)

对于您提供的用例,您不需要IntelliJ。 只需使用另一个知道如何正确折叠文本并从那里复制文本的工具打开文件。

我对json在线工具做了一个简短的搜索,发现了这个: https://jsonformatter.curiousconcept.com/

您可以将您的json粘贴到蓝色区域,在黑色区域将其折叠,然后从黑色区域复制。

请注意,您有一个折叠所有json节点的按钮。

这是应对结果:

{  
   "list1":[  ],
   "list2":[  ]
}

enter image description here

在下一张图片中,您可以看到复制时黑色区域中的文字是什么样的:

enter image description here

如果您坚持要通过IntelliJ进行操作,可能会有适合您的文件类型的插件,或者您可以自己编写新的IntelliJ插件。

来自你的