Разборка в Шторме

PhpStorm — лучшая IDE. Но не все дефолтные настройки могут подходить. Особенно в новом UI. Что и почему можно поменять? Сейчас расскажу.

TL; DR

Чтобы не было завышенных ожиданий, сразу покажу вид редактора после всех изменений

Смотри не на то, что есть, а на то, чего нет

Смотри не на то, что есть, а на то, чего нет

Верхнее меню

Раньше верхушка редактора состояла из двух полосок (Main Menu и Main Toolbar):

Классика

Классика

В новом UI — одна полоска, с переключением через гамбургер-иконку:

По умолчанию (Main Toolbar)

По умолчанию (Main Toolbar)

При переключении (Main Menu)

При переключении (Main Menu)

Удобно? Не совсем. Перед каждым обращением к меню нужно дополнительно прокликивать иконку переключения. Можно вернуть как раньше? Можно. Правый клик по полоске и выбор пункта «Show Main Menu in Separate Toolbar». Но есть предложение поинтереснее.

Что, если все наиболее часто используемые пункты меню (Main Menu) добавить в панель инструментов (Main Toolbar)? Они станут доступны в один клик, переключение на главное меню будет гораздо реже, а значит не так раздражать.

Например:

Свой Main Toolbar

Свой Main Toolbar

Подробный состав

Возможно, ваш набор команд будет другим, но тоже поместится. Особенно, если не добавлять то, что обычно вызывается через горячие клавиши.

Навигация / Хлебные крошки

Навигация, которая раньше размещалась вверху, перекочевала вниз (в Status Bar). И это как минимум непривычно. А соседство с хлебными крошками и вовсе создает эффект баден-баден.

В конце останется только один (с)

В конце останется только один ©

Переместить навигацию наверх можно через

View / Appearance / Navigation Bar (Top)

Там же можно снять галочку с опции Show Members, чтобы отображался только путь до файла

Почему не нужен Show Members

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

Ну, а Хлебные крошки вообще убрать:

Settings / Editor / General / Breadcrumbs: Show breadcrumbs (off)

Вкладки

По умолчанию вкладки отображаются в одну строку:

Отображение вкладок в режиме One Row

Отображение вкладок в режиме One Row

Теоретически, когда задача ясна и проста, достаточно открыть всего пару файлов. У каждой задачи свой контекст, мир прекрасен и. нереален.

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

А есть альтернативы? Даже две!

Первая, многострочный режим отображения вкладок:

Settings / Editor / General / Editor Tabs: Show Tabs in = Multiple rows

Отображение вкладок в режиме Multiple Rows

Отображение вкладок в режиме Multiple Rows

Он может показаться стремным, но работать с ним просто кайф! Хотя когда строк становится много, приходится самостоятельно подсрезать вкладки (т.е. вручную закрывать по одной, или скопом). И это отвлекает.

Вторая альтернатива — режим отображения в отдельном блоке (например, справа). Настраивается там же: Tab Placement = Right

Режим отображения вкладок вертикально

Режим отображения вкладок вертикально

Посмотрите, сколько еще свободного места на скриншоте! При таком варианте на экране действительно помещается 20–30 вкладок (против 5–10 при выводе в строку). И независимо от их количества, область с кодом остается неизменной по высоте. Но привыкнуть сложнее.

Если только вы не…

Один из тех пользователей Мозилы, который предпочитал подобное отображение вкладок, даже когда это перестало быть мейнстримом.

Порядок расположения вкладок — еще одна интересная особенность IDE. Чтобы разработчикам было не так скучно, каждый раз при открытии вкладки, она располагается так, чтобы ее потом невозможно было отыскать.

Если вам надоело играть в эту викторину, можно задать более предсказуемый (последовательный) порядок расположения вкладок:

Settings / Editor / General / Editor Tabs: Tab Order: Open new tabs at the end

Хотя даже после этого мозг по привычке будет продолжать заниматься спонтанным поиском.

Там же можно отключить отображение расширений (Show file extension) и иконок (Show file icon). Ведь все равно 99% файлов — это классы. А экономия пространства и снижения визуального шума — всегда хорошо.

Еще один спорный момент — максимальное количество открытых вкладок. По дефолту это число 10, после чего самая неиспользуемая вкладка закрывается. Что вызывает праведный гнев! Ибо кто смеет за меня решать, когда закрывать вкладку. Знаете как долго я ее искал?

Но поддаваться эмоциям и выставлять число 100 тоже не лучшая стратегия. Когда вкладок слишком много, то и сам перестаешь верить, что быстро найдешь среди них нужную. Возможно 30 вполне хватит, а в редких случаях использовать Pin Tab для удержания.

Панель Статус бар

Убрать. Что?! Уж статус бар то чем не угодил? Он же такой милый, показывает сколько выделено строк и символов, кодировку, позицию курсора и еще много другой «полезной» инфы.

Статус Бар - мастхэв любой IDE

Статус Бар — мастхэв любой IDE

Ну ладно, если так, то не убирать, но скорее из-за привязанности и прокрастинации. Или если придумали отображать там что-то реально нужное.

Поиск

О, Поиск! Хочу детей от его создателей! Как же он хорош! Но, хоть в это и сложно поверить, раньше было еще лучше. Пока где-то в 2018 году не произошло что‑то странное — введен лимит на количество выдаваемых результатов в размере 100. К счастью, это можно изменить:

Settings / Advanced Settings: Find/Replace: Maximum number of results to show in Find in Files/Show Usages preview

Но не бесплатно. Прям под настройкой расположена угрожающая надпись о том, что увеличение лимита приведет к существенному потреблению памяти. И, кажется, это не шутка. Если выставить 1000, то кулер начинает подозрительно жужжать. Страшно!

А с другой стороны, на игрушках он жужжит еще громче, и не всегда в поиск попадает большая выборка. Вообщем, чуть подкрутить этот лимит все-таки можно.

Xdebug

У PhpStorm отличная интеграция с Xdebug!

Zero-configuration

Zero означает, что если вы не в курсе, как настроить дебаг, то шансов сделать это самостоятельно ноль. Если только вы интуитивно не переключите интерпретатор на существующий контейнер, создадите Service с правильным именем, перезагрузите PhpStorm после изменения порта прослушки (если нужен нестандартный), а также замапите директории (ждать автоматизации на основе docker-compose.yml не приходится).

Панелька дебага всегда бравировала (и правильно делала) расширенным набором возможностей. Но с выходом нового UI что‑то пошло не так, и из основного набора исчезла стрелочка перемещения к позиции курсора (RunToCursor), и окошко для выполнения кода (EvaluateExpression).

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

Возвращаем панели Xdebug былое величие!

Возвращаем панели Xdebug былое величие!

Кстати, заодно открыл для себя Force Run To Cursor, который сразу перемещается в строку с курсором, даже если по пути есть другие брейкпоинты.

Git

Когда-то список изменений отображался во вкладке основного окна Git

Хотите вернуть старый добрый Local Changes?

Хотите вернуть старый добрый Local Changes?

Потом (уж не знаю почему) его перенесли в отдельную вкладку в группе вместе с файлами проекта и структурой. Это мешает одновременному просмотру файлов и изменений. Да и вообще, какое-то расчленение гита на две разные области редактора.

Вообщем, вернуть обратно можно так:

Settings / Version Control / Commit: Use non‑modal commit interface (off)

Там же можно активировать автоматическое причесывание кода (Commit Checks: Reformat code, Optimize imports, Rearrange code), но лучше все-таки вызывать специализированные инструменты через pre-commit хук.

Еще, можно переложить на IDE заботу о том, чтобы все файлы завершались пустой строкой:

Settings / Editor / General / On Save: Ensure every saved fle ends with a line break

Горячие клавиши

Не буду навязывать (внезапно), весь свой набор переопределений. Здесь всегда все слишком индивидуально. Но парочку упомяну:

F2 — рефакторинг/переименование (дефолт Shift + F6).

Ctrl + O — открытие директории с файлом в ОС («Show in File Manager»)

Ctrl + S — сохранение файла на удаленном хостинге («Upload Current Remote File»)

Alt + близко расположенные символы — хорошие кандидаты для замены часто вызываемых команд.

Причесать код одним махом

Можно отформатировать код, оптимизировать импорт, и реорганизовать методы класса одним вызовом Ctrl + S. Для этого нужно зайти в настройки:

Settings / Tools / Actions on Save

и активировать все необходимые действия.

Ништяки

Парой скопируешь что-то, а потом вместо вставки нажмешь еще раз Ctrl + C. В результате буфер затирается пустым значением. Знакомый случай? Так вот, можно попросить PhpStorm помешать этому:

Settings / Advanced Settings: Editor: Don’t copy/cut the current line when invoking the Copy or Cut action with no selection.

От случайного перетаскивания окон можно оградить себя здесь:

Settings / Advanced Settings: Tool Windows: Allow dragging tool windows by header to move to another location (off)

А сколько раз вы хотели закрыть редактор и пойти отдыхать, но в последний момент PhpStorm запрашивал подтверждение закрытия. Вы отказывались, и продолжали работать. Чтобы впредь такого не было, можно отключить это поведение здесь:

Settings / Appearance & Behavior / System Settings: Confirm before existing IDE (off)

Открыть проект в новом окне или текущем? Чтобы каждый раз не отвечать на этот очевидный вопрос, можно указать ответ здесь:

Settings / Appearance & Behavior / System Settings: Project: Reopen projects onStartup = New window.

Настройка автоматического импорта связанных классов при вставке кода:

Settings / Editor / General / Auto Import: PHP: Insert imports on paste = All (+ активировать все пункты под ним).

И это все?

Да, все что знал. Если на ваш взгляд что-то еще можно улучить в дефолтном поведении PhpStorm, то расскажите, пожалуйста!

© Habrahabr.ru