Многие из вас знают, как эффективно повышает производительность использование горячих клавиш, шаблонов кода и очень клёвой строки поиска (Quick Access), но я бы хотел рассказать о десяти возможностях, которые знают не все.
1. Code Recommenders
Code Recommenders – восхитительный умный плагин, подсказывающий код при написании. Раньше когда мы нажимали Ctrl+Space, мы видели все методы, переменные и шаблоны, многие из которых могли бы быть совершенно бесполезными; плагин Code Recommenders же выбирает полезные методы, которые применимы в данном случае и упорядочивает их по актуальности – по вероятности, с которой мы используем метод в данном контексте. А SnipMatch из Code Recommenders и вовсе позволяет вставлять целые блоки шаблонного кода. За подробностями и установкой сюда.
2. Type Filters
Type Filters удаляют рекомендации выбранных типов отовсюду. Просто отовсюду. Eclipse PDE разработчикам, например, постоянно мешают Label, Button и другие AWT классы, потому что они пишут на SWT, и уж тем более нет никакого смысла встречать List из AWT, если ты пишешь библиотеку. Так что заходим в Preferences… нет, не так. Нажимаем Ctrl+3 и начинаем вводить “Type Filters”, заходим на соответствующую страницу настроек и если необходимо добавляем java.awt* и javax.swing*.
3. Favorites
Бывает и другой случай – когда хочется всегда видеть какие-нибудь сердцу родные статические методы. Например, я часто использую предусловия из библиотеки Guava – Preconditions.checkArgument(boolean) и Preconditions.checkNotNull(T), которые являются настолько базовой необходимостью, что при настройке Eclipse я сразу захожу в Favorites и добавляю туда com.google.common.base.Preconditions.
4. Organize imports on save
Возможно, у кого-то уже выработался рефлекс нажимать Ctrl+Shift+O для отчистки ненужных импортов при виде желтых полосочек у верхней части вертикальной полосы прокрутки редактора, а, возможно, кто-то нажимает это сочетание клавиш безусловно перед сохранением. Но не беспокойтесь так, этого можно не делать – заходим в “Save Actions”, выбираем “Perform the selected actions on save” и убеждаемся, что “Organize imports” выбрано – теперь ненужные импорты сами будут удаляться при сохранении. Кстати там же есть ещё множество полезных действий, таких как расстановка недостающих аннотаций Override, удаление ненужных преобразований типов, удаление мёртвого кода или форматирование только отредактированных строк, и даже имеются такие “весёлые” возможности, как преобразование обычных for в foreach или безымянных классов в лямбды.
5. Display
Display – это такая вьюшка (view), которая даёт вам силу использовать отладчик как настоящий ниндзя. Код из вьюшки Display запускается в контексте текущей отладки. Пишем строчку кода, выделяем её, нажимаем Ctrl+U, и код запускается, а нажимаем Ctrl+Shift+V – код не только запускается, но и результат его вызова печатается рядом с нашим кодом в Display. Помимо этого, выделенный текст можно отправить в Watch Expressions. Все эти действия также имеются на панели инструментов вьюшки.
Замечания
- Любой выделенный текст можно отправить в Watch Expressions командой “Watch”. Для этой команды нет хоткея по умолчанию, но вы ведь знаете, что в Eclipse любой команде можно назначить коткей.
- Клавиши Ctrl+U и Ctrl+Shift+V работают и в том случае, если вы выделяете текст прямо в редакторе кода; в случае нажания Ctrl+Shift+V результат будет показан в вылетающем окошке.
6. Show Logical Structure
Одна из неприятнейших вещей при отладке – это ковыряться с содержимым TreeMap или LinkedList, потому что во вьюшке Variables они представлены неудобным образом, что соответствует их реальной структуре, но не соответствует логической структуре. Кнопочка “Show Logical Structure” на панели инструментов вьюшки Variables как раз делает так, чтобы мы видели содержимое таких коллекций (и не только) в удобном для нас виде. Заодно эта кнопка меняет вид отображения объектов при наведении мышкой. Эта кнопка выглядит как изображение дерева, рядом с которым слева жёлтенькая стрелочка.
7. Bookmarks
Bookmarks – собственно, вьюшка для работы с закладками. Бывает полезной, когда нужно разобрать целую тонну какого-нибудь кода, поскольку позволяет переходить к “избранным местам” кода и делать заметки по ним – добавляются закладки кликом на область слева от редактора, “Add Bookmark...”, но лучше, конечно, какой-нибудь хоткей назначить (например, Ctrl+B – всё равно он бесполезен, т.к. назначен на “Build All” по умолчанию).
8. Split Editors
После 12 лет, 200 голосов, и 181 комментария, разделение редакторов таки было реализовано в Eclipse. Горизонтальное разделение – Ctrl+_ (Ctrl+Shift+-), а вертикальное – Ctrl+{ (Ctrl+Shift+[). Ура! Мы можем редактировать две части файла одновременно! Кстати, эти две части воспринимаются как разные редакторы при переключении между редакторами (при нажатии Ctrl+F6 или Ctrl+Shift+E, но не при нажатии Ctrl+E).
9. FindBugs, Checkstyle, PMD Eclipse
Различные анализаторы кода помогают найти копи-пасту, отклонения от стандартов программирования и другие потенциальные проблемы в коде ещё до того, как эти проблемы просочились в багтрекер (и, как следствие, ухудшили мнение заказчиков о вашей компании), более того, такие анализаторы неизбежно помогают лучше понимать библиотеку Java и эффекивнее использовать сам язык. Естественно, что для многих таких полезных инструментов существует интеграция с Eclipse.
Замечу, что FindBugs, Checkstyle и PMD Eclipse все есть в Eclipse Marketplace, так что их установка происходит крайне просто через Help → Eclipse Marketplace… без гугления и посещения каких-либо сайтов.
10. Plugins
Сила Eclipse вообще в возможности использовать любые плагины, которые вам могут понадобиться, это относится не только к плагинам проверки кода. Нужен дизассемблер Java? Есть JD-Eclipse. Нужна интеграция с Maven или Apache Ivy? Есть m2e и Apache IvyDE. Не можете понять 5000 строчек кода сборки вашего проекта на Ant? Есть Ant Visualizer. Беспокоитесь о мёртвом коде? Есть Unnecessary Code Detector. Хотите “рисовать” окошки SWT с помощью WYSIWYG редактора? Есть WindowBuilder.
11. Секретная возможность
Интересоваться продуктивностью – интересоваться, как правильно пользоваться теми инструментами, что вы используете, и какие новшества в них вводятся.
А какие возможности повышают вашу производительность работы в Eclipse?
Материалы по теме
- Eclipse for Java Developers. Навигация и редактирование – статья на Хабре про горячие клавиши в Eclipse IDE for Java Develipers. Кстати, Ctrl+Shift+L — горячая клавиша всех горячих клавиш.
- My Top 10 Tips on how to be more productive with the Eclipse IDE — Jordi Böhme López
подсказывает 10 полезных возможностей Eclipse. - Tips and Tricks (JDT) из документации Eclipse – множество простых советов, покрывающих довольно большую часть функционала JDT.
- Eclipse Luna — New And Noteworthy – некоторые новые возможности Eclipse Luna, в частности возможности для Java разработчиков.