CTRL-клік працює в будь-якому місці
CTRL-клік, який приводить вас до місця, де визначений клацнув об'єкт, працює скрізь - не тільки в класах Java та змінних Java-коду, але і в конфігурації Spring (ви можете натиснути на ім’я класу, властивість або ім'я біна), в Hibernate (ви Ви можете натиснути на ім'я власності або клас власності або на включений ресурс). Ви можете переміщатися в межах одного клацання від класу Java до місця, де він використовується як Spring або Hibernate bean; клацання на включеному тезі JSP або JSTL також працює, клацніть ctrl на змінну або функцію JavaScript приведе вас до місця, яке воно визначено, або показує меню, якщо в ньому більше одного місця, включаючи інші файли .js та код JS в HTML або JSP файли.
Автозаповнення для багатьох мов
Зимує
Автозаповнення у виразах HSQL, у конфігурації Hibernate (включаючи назви стовпців класу, властивості та БД), у конфігурації Spring
<property name="propName" ref="<hit CTRL-SPACE>"
і він покаже вам список тих бобів, які ви можете ввести у цю властивість.
Java
Дуже розумне автозаповнення в коді 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 Usage будь-якого класу або методу Java, і він знайде, де він використовується, включаючи не тільки класи Java, але й Hibernate, Spring, JSP та інші місця. Метод перейменування рефакторинг перейменовує метод не лише в класах Java, але й у будь-якому місці, включаючи коментарі (не може бути впевненим, чи рядок у коментарях справді назва методу, тому він запитає). І він знайде лише ваш метод, навіть якщо є методи іншого класу з такою ж назвою. Хороша інтеграція контролю джерела (чи підтримує SVN список змін? IDEA підтримує їх для кожного контролю джерела), можливість створити виправлення зі своїми змінами, щоб ви могли надсилати свої зміни іншому члену команди, не вчиняючи їх.
Покращений налагоджувач
Коли я дивлюся на HashMap у вікні перегляду налагоджувача, я бачу логічний вигляд - ключі та значення, останній раз, коли я це робив у Eclipse, він показував записи з хешем та наступними полями - я не дуже налагоджую HashMap , я просто хочу подивитися його вміст.
Перевірка конфігурації весни та сплячки
Під час редагування він підтверджує правильність конфігурації Spring and Hibernate, тому мені не потрібно перезавантажувати сервер, щоб знати, що я неправильно написав ім’я класу чи додав параметр конструктора, щоб мій cfg Spring був недійсним.
Востаннє, коли я спробував, я не міг запустити Eclipse на Windows XP x64.
і він запропонує вам назву person.name або person.address . Ctrl клацніть на person.name і переведе вас в GetName () метод Person класу.
Введіть Pattern.compile("");
клавішу \\ там, натисніть CTRL-SPACE і перегляньте корисну підказку про те, що ви можете ввести у звичайний вираз. Тут ви також можете використовувати ін'єкцію мови - визначте свій власний метод, який бере параметр рядка, заявіть у діалоговому вікні параметрів IntelliLang, що ваш параметр є регулярним виразом - і він також дасть вам автозаповнення. Потрібно сказати, що він виділяє неправильні регулярні вирази.
Інші особливості
Є кілька функцій, які я не впевнений, є у Eclipse чи ні. Але принаймні кожен член нашої команди, який використовує Eclipse, також використовує якийсь інструмент об'єднання для об'єднання локальних змін зі змінами управління джерелами, як правило, WinMerge. Мені це ніколи не потрібно - злиття в IDEA мені достатньо. За 3 кліки я бачу список версій файлів у контролі джерела, ще на 3 кліки я можу порівняти попередні версії, попередні та поточні та, можливо, об'єднати.
Це дозволяє вказати, що мені потрібні всі .jars всередині WEB-INF\lib
папки, не вибираючи кожен файл окремо, тому коли хтось вводить новий .jar у цю папку, він підбирає його автоматично.
Згаданий вище - це, мабуть, 10% того, що він робить. Я не використовую Maven, Flex, Swing, EJB та багато інших речей, тому не можу сказати, як це їм допомагає. Але це робить.