2016-07-26 10 views
2

Можно ли сфокусировать большие блоки кода в IntellJ, выбрать раздел кода, который охватывает сложенный раздел, и только скопировать текст, который виден?IntelliJ - Копировать только видимый текст после складывания кода?

Например, если у меня есть JSON-файл, как:

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

и я складываю списки так IDE отображает их в виде:

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

Есть ли способ, чтобы скопировать только текст отображается выше? Обычная копия включает код, скрытый от представления.

+0

Примечание: прецедент для этого - произвольно большие файлы, где я хочу проверить дизайн более высокого уровня. И.Е. тысячи строк в файле, со множеством различных вложенных объектов и массивов. (Я понимаю, что в этом простом случае я могу просто ввести значения) – AaronCarson

ответ

1

Интересно, что при копировании в IDEA, он сохраняет сложенное состояние (см, например, скриншот прилагается к IDEA-139523). Это означает, что данные находятся в буфере обмена каким-то образом, хотя, возможно, это только в формате IDEA, который другие программы не могут прочитать.

Общий запрос функции, чтобы сделать то, что вы просите, похоже, находится в системе отслеживания билета JetBrains как IDEA-126233. Там нет никаких признаков обходного пути или когда он может работать.

К сожалению, варианты здесь, кажется, ограничены.

  1. Вы можете использовать внешний инструмент, как предлагается в другом ответе, чтобы сделать нужное форматирование. Особенно, если он ограничен форматированием JSON, вы можете найти другой автономный инструмент, который вы можете запустить в своей среде разработки, которая соответствует вашим требованиям безопасности и производительности.
  2. Я рекомендую голосовать за этот билет в системе бронирования JetBrains. Могут не совершить много, но, по крайней мере, сообщить им, что другой человек сочтет это полезным.Если у вас есть дополнительные объяснения или описание, которые могут быть связаны с тем, что, по вашему мнению, недостаточно хорошо описано в существующем билете, вы можете добавить свои комментарии, чтобы помочь в его использовании.
  3. Поскольку данные, как представляется, находятся где-то в буфере обмена IDEA, так как он сохраняет сворачивание при копировании в приложении, возможно, было бы возможно добавить эту функцию «Копировать как показано» в какой-то плагин. Если вам это действительно нужно и не удается найти существующий плагин, который это делает, вы можете увидеть, как сложно было бы написать этот плагин самостоятельно.
  4. Если у вас есть контракт на поддержку JetBrains, вы можете связаться с ним и узнать, могут ли они помочь вам. Хотя я сомневаюсь, что они могут сделать гораздо больше, чем отметить ваш интерес к разработке билета уже в их системе, это не может помешать спросить, и, возможно, они знают о другом обходном пути, который вам будет полезен.

Извините за довольно неудовлетворительный ответ, но я подозреваю, что это самое лучшее, что может быть на данный момент.

+0

Прохладный, это именно то, что мне нужно было услышать. Если он недоступен в IntelliJ, это тот ответ, который мне нужен. Я рад, что они отслеживают его, и он может быть доступен в будущем. На данный момент существуют такие работы, как, например, другие инструменты, даже если IntelliJ напрямую не поддерживает это. – AaronCarson

1

Для прецедента, который вы представили, вам не нужен IntelliJ. Просто откройте файл другим инструментом, который знает, как правильно сложить текст и скопировать его оттуда.

Я сделал краткий поиск инструментов JSON онлайн и нашел, что это один: https://jsonformatter.curiousconcept.com/

Вы можете вставить JSON в синей области, сложить его, как вам нравится в черной области и скопировать его из черной области ,

Обратите внимание, что у вас есть кнопка, чтобы свернуть все узлы json.

Это справляясь результат:

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

enter image description here

На следующем рисунке вы можете увидеть, как текст в черной области выглядит, когда вы копируете его:

enter image description here

Если вы настаиваете на том, что хотите сделать это через IntelliJ, может быть плагин для вашего типа файла, который позволяет это, или вы можете написать новый плагин IntelliJ.

от вашего

+3

Хотя это сработает, оно не отвечает на мой вопрос. Использование внешнего инструмента, подобного этому, может быть не лучшим вариантом, если я работаю над проприетарным программным обеспечением. Вы никогда не знаете, что делают эти внешние линтеры, форматирующие элементы и проверки дифференциала с данными, которые вы им даете. Кроме того, если я копирую/вставляю файл в 4000 строк, некоторые веб-сайты могут быть недовольны и сбой. Мой вопрос запросил IntelliJ, например, потому что лучше не оставлять мою сверхъестественную IDE для того, что должно быть простой задачей. Я буду проверять некоторые плагины и обновлять этот вопрос позже, если найду что-нибудь. – AaronCarson