Как расширить цепочку свернутых пакетов в Intellij IDEA?

127

Intellij IDEA автоматически объединяет пакеты в цепочку, если промежуточные пакеты пусты. В целом это хорошая особенность. Однако иногда вы не хотите, чтобы они были связаны, особенно когда вы находитесь в процессе создания новых структур пакетов для своего нового проекта. Возможно, я встречал настройку отключения этой функции для определенного пакета, но я не могу найти ее сейчас. Итак, кто-нибудь знает, как управлять этой функцией? Большое спасибо.

Кстати, если вам нужно разъяснение, то, что я имею в виду под объединением пакетов, следующее. Предположим, у вас есть такая структура пакета:

$ tree com
com
└── company
    └── project
        └── some
            └── feature

Поскольку на самом деле в промежуточных папках больше ничего нет, Intellij IDEA автоматически отобразит это как

com.company.project.some.feature

в проводнике проекта, который выглядит так, как будто пакеты связаны вместе.

JBT
источник
9
В приведенном ниже ответе есть реальный ответ, но я подумал, что вспомню одну вещь, которую недавно узнал. Если у вас свернутые структуры пакетов, если вы добавите новый пакет с тем же корневым пространством имен, тогда intellij будет достаточно умен, чтобы развернуть все. то есть, если у меня есть, com.foo.devshorts.modelа затем я добавлю, com.foo.devshorts.controllersон расширится com.foo.devshorts.
devshorts
3
@devshorts Это одна из важных причин, по которой я спросил. В вашем примере, если я хочу создать controllersпосле создания com.foo.devshorts.model, мне придется использовать префикс controllerс com.foo.devshorts, что раздражает.
JBT
Да, я чувствую то же самое. Хотя мне пришлось просто делать это так, как я предлагал, поскольку я предпочитаю компактные пакеты, чем нет.
devshorts
6
JBT и @devshorts Более простой способ - если вы хотите сохранить компактный вид пакетов - это использовать панель навигации (Alt + Home). Откройте его, наведите указатель мыши на нужный родительский пакет (и вниз), а затем создайте новый подпакет (или класс с префиксом). Другой псевдо обходной путь, поскольку удалить проще, чем вводить, - это поместить курсор на длинный пакет (com.foo.devshorts.model в вашем примере) в представлении проекта и выполнить «Копировать ссылку» (Ctrl + Alt + Shift + C, меню «Правка»> «Копировать ссылку» или в контекстном меню, вызываемом правой кнопкой мыши). Затем при создании пакета вставьте скопированный пакет и при необходимости удалите.
Javaru

Ответы:

238

Снимите флажок «Скрыть пустые средние пакеты» в раскрывающемся списке настроек Project View:

Скрыть пустые средние пакеты

Даниэль Каплан
источник
11
В качестве обновления эта опция, похоже, теперь называется Hide Empty Middle Packages
Stephane
4
В IntelliJ Ultimate версии 14.1.4. он по-прежнему "Компактный ..." в раскрывающемся меню инструментов (щелчок по маленькой шестеренчатой ​​стрелке вниз в строке меню
обозревателя
хорошо, просто следуйте цифрам на скриншоте, чтобы выбрать вариант
Стивен Золеко
2
Я думаю, следует добавить, что чтобы попасть в это меню, нужно щелкнуть правой кнопкой мыши в верхней панели «Проект» (вверху слева на снимке экрана).
Carcigenicate
6
Compact Middle Packagesв Idea Ultimate 2018.02
J-Alex
17

В качестве другого решения, как создать еще один файл в промежуточном пакете:

Используйте развернутую иерархию пакетов в верхней части окна, как показано ниже. Как показано ниже

Khojiakbar
источник