CTRL-клик работает где угодно
CTRL-щелчок, который приводит вас туда, где определен объект, по которому щелкают объекты, работает везде - не только в классах Java и переменных в коде Java, но и в конфигурации Spring (вы можете щелкнуть по имени класса, или свойству, или имени компонента), в Hibernate (вы можете щелкнуть имя свойства или класс или включенный ресурс), вы можете в течение одного клика перейти от класса Java к тому месту, где он используется как компонент Spring или Hibernate; щелчок по включенному тегу JSP или JSTL также работает, нажатие Ctrl при нажатии на переменную или функцию JavaScript возвращает вас к определенному месту или показывает меню, если имеется более одного места, включая другие файлы .js и код JS в HTML или JSP. файлы.
Автозаполнение для многих языков
Hibernate
Автозаполнение в выражениях HSQL, в конфигурации Hibernate (включая имена классов, свойств и столбцов БД), в конфигурации Spring
<property name="propName" ref="<hit CTRL-SPACE>"
и он покажет вам список бобов, которые вы можете добавить в это свойство.
Ява
Очень умное автозаполнение в коде Java:
interface Person {
String getName();
String getAddress();
int getAge();
}
//---
Person p;
String name = p.<CTRL-SHIFT-SPACE>
и он показывает вам ТОЛЬКО getName () , getAddress () и toString () (только они совместимы по типу), а getName () стоит первым в списке, потому что у него более подходящее имя. Последняя версия 8, которая все еще находится в EAP, имеет еще более умное автозаполнение.
interface Country{
}
interface Address {
String getStreetAddress();
String getZipCode();
Country getCountry();
}
interface Person {
String getName();
Address getAddress();
int getAge();
}
//---
Person p;
Country c = p.<CTRL-SHIFT-SPACE>
и он автоматически завершит его
Country c = p.getAddress().getCountry();
Javascript
Умное автозаполнение в JavaScript.
function Person(name,address) {
this.getName = function() { return name };
this.getAddress = function() { return address };
}
Person.prototype.hello = function() {
return "I'm " + this.getName() + " from " + this.get<CTRL-SPACE>;
}
и он показывает ТОЛЬКО getName () и getAddress () , независимо от того, как можно получить методы *, которые есть у вас в других объектах JS в вашем проекте, и нажатие ctrl на this.getName () приведет вас туда, где это определено, даже если в вашем проекте есть некоторые другие функции getName () .
HTML
Я упоминал автозаполнение и нажатие Ctrl в путях к файлам, таким как <script src = "", <img src = "" и т. Д.?
Автозаполнение в атрибутах HTML-тегов. Автозаполнение в стиле атрибута тегов HTML, как имен атрибутов, так и значений. Автозаполнение в атрибутах класса.
Напечатайте <div class = "<CTRL-SPACE>, и он покажет вам список классов CSS, определенных в вашем проекте. Выберите один, кликните по нему Ctrl и вы будете перенаправлены туда, где он определен.
Легкое выделение языка
В последней версии есть внедрение языка, поэтому вы можете объявить, что ваш пользовательский тег JSTL обычно содержит JavaScript, и он будет выделять JavaScript внутри него.
<ui:obfuscateJavaScript>function something(){...}</ui:obfuscateJavaScript>
Индексированный поиск по всему проекту.
Вы можете использовать Find Usages любого Java-класса или метода, и он найдет, где он используется, включая не только Java-классы, но и Hibernate, Spring, JSP и другие места. Переименование метода рефакторинг переименовывает метод не только в классах Java, но и где угодно, включая комментарии (не может быть уверенности, что строка в комментариях действительно является именем метода, поэтому он спросит). И он найдет только ваш метод, даже если есть методы другого класса с таким же именем. Хорошая интеграция с системой контроля версий (поддерживает ли SVN списки изменений? IDEA поддерживает их для каждого элемента управления версиями), возможность создавать патч с вашими изменениями, чтобы вы могли отправлять свои изменения другому члену команды без их фиксации.
Улучшенный отладчик
Когда я смотрю на HashMap в окне просмотра отладчика, я вижу логическое представление - ключи и значения, в прошлый раз, когда я делал это в Eclipse, он отображал записи с хешем и следующими полями - я не отлаживаю HashMap , я просто хочу посмотреть на это содержание.
Проверка конфигурации Spring & Hibernate
Он проверяет конфигурацию Spring и Hibernate при редактировании, поэтому мне не нужно перезагружать сервер, чтобы узнать, что я неправильно написал имя класса или добавил параметр конструктора, чтобы мой Spring cfg был недействительным.
В прошлый раз, когда я пытался, я не мог запустить Eclipse на Windows XP x64.
и он предложит вам person.name или person.address . Ctrl щелкните на person.name и переведет вас в GetName () метод Person класса.
Введите Pattern.compile("");
put \\ туда, нажмите CTRL-SPACE и посмотрите полезный совет о том, что вы можете вставить в свое регулярное выражение. Здесь вы также можете использовать языковую инъекцию - определите свой собственный метод, который принимает строковый параметр, объявите в диалоговом окне параметров IntelliLang, что ваш параметр является регулярным выражением, и он также даст вам автозаполнение. Излишне говорить, что это подчеркивает неправильные регулярные выражения.
Другие особенности
Есть несколько функций, которые я не уверен, есть в Eclipse или нет. Но, по крайней мере, каждый член нашей команды, который использует Eclipse, также использует какой-то инструмент слияния для объединения локальных изменений с изменениями из системы контроля версий, обычно WinMerge. Мне это никогда не нужно - мне достаточно слияния в IDEA. В 3 клика я вижу список версий файлов в системе контроля версий, еще в 3 клика я могу сравнить предыдущие версии или предыдущую и текущую и, возможно, объединить.
Он позволяет указать, что мне нужны все файлы .jars внутри WEB-INF\lib
папки, не выбирая каждый файл по отдельности, поэтому, когда кто-то фиксирует новый файл .jar в эту папку, он автоматически подхватывает его.
Упомянутое выше, вероятно, составляет 10% того, что он делает. Я не пользуюсь Maven, Flex, Swing, EJB и многими другими вещами, поэтому не могу сказать, как это помогает с ними. Но это так.