【问题标题】:IntelliJ - Copy only visible text after code folding?IntelliJ - 代码折叠后仅复制可见文本?
【发布时间】:2016-11-30 17:35:00
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 注意:这个用例是任意大的文件,我想检查更高级别的设计。 IE。文件中有数千行,包含许多不同的嵌套对象和数组。 (我意识到在这个简单的情况下我可以输入值)

标签: intellij-idea copy folding code-folding


【解决方案1】:

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

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

很遗憾,您的选择似乎有限。

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

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

【讨论】:

  • 酷,这正是我需要听到的。如果它在 IntelliJ 中不可用,那么这就是我需要的答案。我很高兴他们正在跟踪它,并且它可能在未来可用。目前至少有其他工具之类的解决方法,即使 IntelliJ 不直接支持这一点。
【解决方案2】:

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

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

你可以在蓝色区域粘贴你的json,在黑色区域随意折叠,然后从黑色区域复制。

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

这是应对结果:

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

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

如果您坚持要通过 IntelliJ 执行此操作,则可能有一个适用于您的文件类型的插件允许它,或者您可以自己编写一个新的 IntelliJ 插件。

来自你的

【讨论】:

  • 虽然这可行,但它不能回答我的问题。如果我正在开发专有软件,使用这样的外部工具可能不是最佳选择。你永远不知道这些外部 linter、格式化程序和差异检查器对你提供的数据做了什么。此外,如果我复制/粘贴 4000 行文件,某些网站可能会不高兴并崩溃。例如,我的问题要求 IntelliJ,因为最好不要离开我的超级花哨的 IDE 来完成应该是一项简单的任务。如果我发现任何插件,我会检查一些插件并在稍后更新这个问题。
  • 另外,不幸的是,当前(2021 年 2 月 23 日)的网页设计是复制/粘贴(两个网页按钮)和直接突出显示/上下文单击/复制为-纯文本最终都会复制完整的未折叠 json。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
  • 1970-01-01
  • 2011-08-05
  • 1970-01-01
  • 2016-10-26
相关资源
最近更新 更多