Очень часто я слышу фразы различных людей на тему того, что полноценные IDE — это не нужно, что Vim, Sublime Text и Atom позволяют всё делать, и так далее, и так далее. Только недавно у меня снова возникла беседа на эту тему, и я снова вспомнил о том, что хотел показать людям некоторые трюки современных IDE, которые сильно упрощают жизнь во время работы.
Я люблю эту качественную опенсорсную IDE Netbeans. У меня даже цветовая схема под неё есть своя собственная (не забудьте прочитать описание, если пожелаете её опробовать). На всех видеороликах как раз она и используется в работе, плюс тёмный интерфейс Darkula и свободный шрифт Hack.
Иногда я перехожу в PhpStorm, поработать там и сравнить возможности этих двух IDE. И время от времени прихожу к понимаю, что каждая из них по-своему хороша. PhpStorm имеет множество интересных интеллектуальных возможностей для быстрой разработки ООП кода. А на стороне Netbeans — бесплатность, а также мощный и не сильно перегруженный интерфейс. Это особенно чувствуется после возвращения на него с PhpStorm.
В этой статье я хотел бы показать некоторые прикольные трюки, которые присутствуют в Netbeans и прочих современных IDE, а некоторые из них — только в Netbeans. Очень часто они помогают мне сэкономить массу времени при работе над большими проектами.
Прошу также не возмущаться людям, которые используют современные IDE и знают большинство этих трюков. Это не для вас! Дело в том, что есть множество других людей, которые их не знают, и я бы хотел показать им эти возможности на реальном примере.
Навигация по сущностям в файле
Одна из самых моих любимых фич Нетбинса. К сожалению, её нет в PhpStorm.
Наведите курсор на переменную, подождите когда она подсветится. Далее нажимайте alt+up/down, чтобы переходить к местам использования этой переменной в файле.
Точно также можно подсветить какой-то метод или название класса и переходить по их использованиям в файле. Точно также можно переходить по сущностям на других языках программирования, например, в JavaScript.
Открыть все изменённые файлы в проекте
Этой штуки я тоже в PhpStorm, к сожалению, найти не смог.
Допустим, у вас возникла нужда: быстро понять, какие конкретно изменения в данный момент присутствуют в текущем проекте, а также проанализировать и скорректировать их. В обычной ситуации можно написать git status
и увидеть список файлов, которые изменены. В случае с Netbeans, всё ещё проще:
Автоформатирование кода
У вас есть большой файл с кучей кода, который выглядит ужасно? Нет проблем, просто нажмите Alt+Shift+F, и Netbeans сделает его конфеткой :)
Вы можете очень гибко настраивать то, как Netbeans будет форматировать ваш код. При необходимости, для отдельного проекта можно сохранить свои собственные настройки форматирования, хранить их в репозитории проекта и использовать их всей своей командой.
А если вы нажмёте Alt+Shift+F будучи на какой-то папке вашего проекта в дереве файлов, то Netbeans услужливо предложит рекурсивно отформатировать весь код в данной папке.
Подсветка некорректно используемых или неиспользуемых переменных и методов
По этой части PhpStorm явно выйгрывает у Netbeans в силу намного большего количества различных интеллектуальных проверок и предложений по авто-исправлению кода.
Кто-то рефакторил код и оставил после себя несколько бессмысленных переменных? Нет проблем, Netbeans покажет вам их и предложит удалить или исправить некорректное поведение.
Интеллектуальная коррекция Use директив
С приходом стандартов PSR в мир PHP, исходные коды проектов преобразились и стали активно использовать неймспейсы. Теперь у каждого PHP-класса присутствует целый ворох use-директив, указывающих, какие конкретно зависимости использует данный класс.
Чтобы проще работать со всем этим делом, в Netbeans существует функция автокоррекции этих директив. Просто нажмите комбинацию Ctrl+Shift+I.
PhpStorm делает всё примерно также, но чуточку изящнее и умнее.
Сортировка вкладок
Когда у нас открыт десяток вкладок, бывает, что очень хочется быстренько переместить одну из них между ними. Да, обычно это приходится делать мышкой, но ведь намного удобнее, когда такая возможность есть прямо в клавиатурной комбинации!
Эту комбинацию надо установить вручную через настройки. Я повесил себе это на Alt+Shift+PgUp/PgDn
В PhpStorm это до сих пор не реализовали.
Редактирование переменной в файле/проекте
Вы неудачно назвали класс, и его хорошо бы переименовать? Или то же самое случилось с одной из ваших переменных? Нет ничего проще, если у вас под рукой Netbeans или другая подобная IDE.
Для редактирования переменной или класса, наведите курсор на нужный объект и нажмите комбинацию Ctrl+R.
Автогенерация геттеров и сеттеров
Иногда мы создаём какой-то новый класс, и в соответствии с подходом АТД (абстрактных типов данных), будет правильно, если мы установим для всех нужных переменных класса геттеры и сеттеры. Снова к нам на помощь приходят умные IDE, которые вполне могут сделать всё это за вас.
Создайте новый класс и определите все его переменные, после чего нажмите комбинацию Alt+Insert.
Переопределение методов
Бывает, что мы пишем класс, который зависит от другого класса, и у нас возникает нужда в переопределении одного из методов родительского класса. Здесь нам снова помогает комбинация Alt+Insert.
Навигация по результатам поиска
Все мы знаем, что очень часто в проекте необходимо найти какую-то однотипную конструкцию, и что-то с нею сделать. В этом случае в работе очень помогает наличие горячих клавиш для навигации по результатам поиска: Ctrl+[точка/запятая]. Netbeans будет автоматически открывать нужные файлы и переключать курсор на нужную строку. Это очень сильно облегчает работу при большом рефакторинге.
Выделение более широкого/узкого блока кода
Очень интересная функция, которая есть в Netbeans, но про которую я вспоминаю довольно редко :) Нажатие alt+shift+[точка/запятая] выделяет большую/меньшую область относительно изначального положения курсора. Это тоже надо видеть на реальном примере, чтобы лучше понять:
Не уверен, что это есть в PhpStorm, но возможно есть, и я просто не нашёл.
На этом пока что всё, и надеюсь, что эта статья поможет вам и облегчит вам вашу работу :)
Ну и конечно же, всегда будет интересно почитать в комментариях о других IDE и других излюбленных трюках, которые используют другие программисты в своей повседневной работе. Дерзайте :)
Автор: saggid