Netbeans tips & tricks: all the features that you might not know

Більшість розробників проводять левову частку свого часу в середовищі розробки. Але мало хто використовує хоча б половину тих можливостей, які є в IDE, тим самим роблячи частину своєї роботи нудною, одноманітною, повільною... Ні, це не по-нашому! Ми повинні використовувати наш основний робочий інструмент на повну силу, щоб вичавити з нього максимум і перекласти всі найнецікавіші, повторювані дії на плечі програми.

Я не хочу і не буду описувати стандартні поради на кшталт "підтримує PHP 5. *, CSS 3. *, SVN, Git і т.д.", "Light Smarty" та інші очевидні речі. Я хотів би поділитися деякими речами, які неодноразово допомагали мені в налаштуванні netbeans, і часто залишаються непоміченими або невикористаними колегами (за моїми спостереженнями і питаннями в Twitter). Почнемо здалеку - з налаштування IDE.

Налаштування Netbeans

Видалити непотрібне

У редакторі за замовчуванням залишається не так багато місця для коду. Він переповнений різними панелями інструментів, додатковими вікнами тощо. Коли монітор більше двох десятків дюймів - це навряд чи буде проблемою. Але коли IDE використовується на ноутбуці/нетбуці - це починає дратувати.

NetBeans settings

Для початку зменшимо піктограми кнопок головної панелі інструментів: Вигляд → Панелі інструментів → Мала піктограма панелі інструментів

Toolbar with big icons

vs

Toolbar with small icons

Навіть для більшого обсягу пам'яті панель інструментів у редакторі можна взагалі вилучити через контекстне меню на лівій панелі редактора.

NetBeans Tips & Tricks

На додаток до всього, давайте перемкнемося в повноекранний режим, натиснувши Alt+Shift+Enter. І ще одне поширене сполучення клавіш: Shift+Esc – щоб розгорнути активне вікно, повторне натискання повертає вікно того самого розміру.

В результаті нескладних маніпуляцій корисна площа для коду значно збільшилася.

Editor window

Одразу ж, під час читання статті, спробуйте ці комбінації на практиці:

  • по-перше - ви побачите, як саме вони працюють;
  • по-друге - швидше за все, вони не вилетять з вашої голови до кінця наступного абзацу =)

Форматування коду в NetBeans

У 90% випадків IDE повністю справляється із завданням, тож нехай це робить вона, а не ми.

Однак у редакторі є деякі проблеми зі зручністю використання налаштувань форматування функції. І іноді довгі пошуки одного налаштування, щоб виправити відступ після опису методу або додати переведення рядка, можуть перетворитися на довгі пошуки. Наведемо приклад:

Code formatting in NetBeans

Начебто все якось зручно, тому що легко видно, яке поле відповідає за відповідне місце в коді. Але, на жаль, підсвічування додається не NetBeans, а вручну в графічному редакторі. Ну, поки такий зручний функціонал не додається до редактора — у разі потреби доведеться підглядати за такими статтями для форматування коду netbeans.

Групове багаторядкове вирівнювання в NetBeans

Однією з причин, чому я свого часу не завжди дозволяв собі застосовувати автоформат до всього файлу, були блукаючі відступи для масивів тощо.

Group multiline alignment in NetBeans

With group lining

Але починаючи з версії 7.1 було додано підтримку групового вирівнювання..

Позбавлені уваги можливості NetBeans

Автоматичне видалення висячих проміжків. Ці «невидимі друзі» справді можуть попсувати нерви. Особливо під час роботи в команді..

NetBeans Tips & Tricks

А потім такі файли різниць у підрахунках з'являються, де крім пропусків нічого не змінилося.

NetBeans Tips & Tricks

Виклик вікна налаштувань Tools → Options, вкладка Editor → General, в самому низу When Saving Files → Remove Trailing Whitespace. І замість Never обирайте або Always, чи From Modified Lines Only. Не хвилюйтеся і забудьте про зайві пробіли у вашому коді, IDE подбає про все.

Також на вкладці є кілька експериментальних варіантів Editor → Hints. Я рекомендую включити ці пункти без зволікань:
Variable might have not been initialized і Variable does not seem to be used in its scope
Думаю, немає потреби пояснювати призначення кожної з них. На досить великих проектах в Zend Framework я не помітив жодних проблем з продуктивністю, тому користуватися цими можливостями можна і навіть потрібно.

NetBeans Tips & Tricks

Далі я рекомендую увімкнути опцію View → Show Versioning menus, завдяки чому поточні версії tag чи branch буде відображено у вікні дерева проекту для бібліотек. На скріншоті показано приклад підключеного через svn:externals з бібліотек тегів.

NetBeans Tips & Tricks

Є можливість редагувати формат цих повідомлень: http://wiki.netbeans.org/FaqSubversionCustomizeAnnotation

Кольорові схеми NetBeans

NetBeans code templates Колірна схема за замовчуванням не найкраща, тому я вважаю, що адаптація стандартної схеми або навіть її заміна на іншу була б необхідним кроком до комфортного процесу розробки.

З готових схем є порт для NetBeans досить поширеної теми Solarized. Вона доступна як у світлому, так і в темному варіанті.
Solarized Colorscheme for NetBeans.

Та інша темна тема(Twilight) для Netbeans.

NetBeans plugins

Використання: поради та підказки

Перше, що потрібно привчити себе: якомога більше працювати без миші. Працювати з клавіатурою набагато швидше і продуктивніше, до того ж, не до всієї функціональності IDE можна отримати доступ через пункти меню (або вона захована так глибоко, що вам набридне шукати її мишкою знову і знову).

Гарячі клавіші NetBeans

Перше, з чого потрібно почати - роздрукувати список основних гарячих клавіш, (Help → Keyboard Shortcuts Card) і заглиблюватися в неї доти, доки не дійдеш до автоматизму. А зараз я намагаюся підігрівати інтерес.

Якщо вам потрібно змінити регістр літер у довгому слові (змінна тощо), що ви зробите? Передрукували б слово ще раз? Не раджу: просто виділіть потрібні символи, натисніть Ctrl+U, і потім — U або великими літерами, або L для малої. І кнопка S ((Перемикач) натискається після комбінації Ctrl+U змінить регістр для кожної літери виділеного блоку на протилежний.

Наведіть курсор на потрібний рядок або виділіть весь блок, а потім натисніть Alt+Shift + , , or і він легко мігрує в будь-якому напрямку. Вам не потрібно "переносити" код через копіпаст. Мені подобається рухати його, рухати! :)

А якщо замість Alt+Shift надміть Ctrl+Shift + or , то виділений блок продублюється в напрямку стрілок.

Ctrl+Space — стандартне автозаповнення.
Ctrl+P — відображення аргументів для обраного методу/функції/класу.
Ctrl+Shift+Space — відображення спливаючого вікна з документацією (згенерованою на основі стикувальних блоків).

Ctrl+G — перехід до номера рядка ...

Ctrl+E — видалити поточний рядок під курсором або виділений блок.

Ctrl+Q — перемістити на останнє місце редагування (щоб оцінити корисність - потрібно спробувати в роботі після активного рефакторингу тощо).

Ctrl+Shift+V — вставити фрагмент коду з буфера, вже відформатований (відповідно до описаної вище конфігурації).

Alt+Shift+J — вибір ідентифікатора. Насправді він повністю вибирає будь-яке слово, яке зараз містить курсор, і розміщує курсор у кінці вибраного рядка:

NetBeans Tips & Tricks

NetBeans Tips & Tricks

Під час написання статті я знайшов для себе нове і дуже зручне поєднання клавіш для швидкого виділення блоку коду. Наводимо курсор, натискаємо Alt+Shift+. і з кожним натисканням виділяється трохи більший блок.

NetBeans Tips & Tricks

Комбінація Alt+Shift+, робить з точністю до навпаки - з кожним натисканням зменшує виділення.

P.S. Щоб легше було запам'ятати цю комбінацію клавіш (крапка і кома якось зовсім не вкладалися в голові), я запам'ятав їх як Alt+Shift+> and Alt+Shift+< (select more / less).


Ctrl+Enter — після рядка з курсором додаються нові переноси рядків, сам курсор залишається на своєму місці.

Shift+Enter — навіть якщо курсор знаходиться посередині рядка, після натискання комбінації курсор буде перенесено на новостворений рядок, попередній залишиться без змін (як якщо б ви натиснули вперше) End, і погтім Enter).

Для швидкої навігації без миші:

  • Ctrl+0 — редактор коду;
  • Ctrl+1 — вікно проєктів;
  • Ctrl+7 — вікно навігатора..

Якщо ви хочете відкрити будь-який файл, що ви будете робити? Рука потягнеться до миші, щоб відкрити папку за папкою в дереві проекту, поки не дістанеться до потрібного файлу. І це в тому випадку, якщо ви пам'ятаєте, де він знаходиться. Це занадто довго. Не завжди зручно. Але набагато простіше і швидше знайти файл (або клас) за його назвою.

Alt+Shift+O — Пошук файлу за назвою.

Ctrl+O — пошук файлу за назвою класу, який він містить.

Moreover, it is not necessary to enter the file name in full:

NetBeans Tips & Tricks

NetBeans Tips & Tricks

Alt+Ins — генератор коду. Залежно від контексту, вміст спливаючого меню буде відрізнятися. Наприклад, у нас є модель з описаними властивостями, тепер нам потрібно створити сеттер і геттер для кожної з них. Це нудно і виснажливо. Тоді нехай це зробить IDE. Вибираємо потрібний нам пункт з меню.

NetBeans Tips & Tricks

У діалоговому вікні виберіть властивості, для яких ми будемо генерувати код.

NetBeans Tips & Tricks

І насолоджуймося результатом.

NetBeans Tips & Tricks

Хоча гарячі клавіші не зависають на багатьох інших діях, це легко виправити в налаштуваннях Tools → Option → Keymap. А тут ви можете побачити список усіх можливих гарячих клавіш для NetBeans.

Що стосується функцій, які ховаються за гарячими клавішами, і до яких, в принципі, ви не потрапите інакше, як експортувавши current комбінації клавіш до HTML. Відфільтруйте список клавіш за словом HTML, виділіть потрібну функцію і призначте їй комбінацію.

NetBeans Tips & Tricks

Після нажаття Alt+Shift+E (або що ви там вставили) - генерується HTML-файл, який містить список усіх доступних функцій та ярликів до них, розділених за профілями (NetBeans, Eclipse, Idea, etc). Цей файл буде розташовано в папці з налаштуваннями NetBeans.

У моїй Ubuntu шлях до файлу, наприклад, такий:/home/{user}/.netbeans/7.1/config/shortcuts.html

Мішечок корисних речей

Якщо навести курсор на слово function тоді весь return буде виділений. А IDE коректно проігнорувала return з анонімної функції.

NetBeans Tips & Tricks

Ctrl+Shift+1 — підкреслює поточний відкритий файл у дереві проекту. Я Ctrl+Shift+2 і Ctrl+Shift+3 робить те саме в дереві файлів і вибраному відповідно.

Переміщаючись по відкритих вкладках і натискаючи кнопку Ctrl+Tab у лівому кутку відображається повний шлях до файлу.

NetBeans Tips & Tricks

Анотації з поточної VCS для файлу: Team → Show Annotations. Зручно дивитися, коли і хто редагував кожен рядок коду.

NetBeans Tips & Tricks

Якщо запускати з консолі:

*/netbeans/bin/netbeans path/to/file.php:15

то файл, переданий аргументом, відкривається в NetBeans на 15-му рядку.

Починаючи з версії NetBeans 7.1, вони додали ще кілька приємних дрібниць, таких як «прямокутне» виділення коду і код масштабування в редакторі (утримуючи Ctrl+ колесо мишки).

Зручно, коли потрібно подивитися на код з висоти «пташиного польоту».

NetBeans Tips & Tricks

або під час презентацій, якщо потрібно вивести IDE на великий екран.

NetBeans Tips & Tricks

Вуууууу!

На мою думку, це найпотужніша та найуніверсальніша функція NetBeans. Вона дозволяє автоматизувати більшу частину рутинної роботи з кодування.

Коли я починав писати статтю, я думав, що саме ця частина буде найрозширенішою. Але в процесі роботи я знайшов хороші матеріали, які детально описують все необхідне. Настійно раджу уважно ознайомитися з матеріалами і обов'язково спробувати застосувати їх на практиці, враховуючи специфіку вашого проекту. Я впевнений, що ви залишитеся задоволені результатом.

Шаблони коду NetBeans

Деякі шаблони коду доступні в NetBeans з коробки. Давайте розглянемо один з них.

Наприклад, у нас є рядок коду:

$e = $this->getEvent();

Введіть vdoc поверх рядка, натисніть клавішу Tab і перегляньте результат:

/* @var $e MvcEvent */
$e = $this->getEvent();

Ім'я змінної та її тип було підібрано автоматично. Хіба це не чудово?

А ось "код" заготовки (трохи відформатував для наочності):

/* @var
$$${VARIABLE variableFromNextAssignmentName default="variable"}
${VAR_TYPE variableFromNextAssignmentType default="ClassName"}
*/

Всі тонкощі описані детально і зі скріншотами у статті на сайті IDE.

Макроси NetBeans

• Чудові речі, які доповнюють шаблони коду з точки зору автоматизації, і дозволяють реалізувати всі ті маленькі «родзинки» в IDE, чого так не вистачає для комфортної роботи — макроси netbeans.

Дослідження на цю тему від Олександра Макарова.

І повний список макрокоманд з офіційного сайту.

Ширший набір css-макросів для Netbeans.

Корисні посилання

Офіційний блог про PHP-функціонал для NetBeans:

Найбільше інформації про IDE, як би дивно це не звучало, розміщено на сайті netbeans.org. Але структура там настільки складна, що навіть за допомогою пошуку Google важко знайти потрібні речі. Тому я вирішив виділити найбільш корисні та актуальні посилання на доки та інструкції з використання окремо.

FAQ

Тонке налаштування шрифтів у редакторі

Створення портативної версії NetBeans

Англійський інтерфейс в NetBeans