
Більшість розробників проводять левову частку свого часу в середовищі розробки. Але мало хто використовує хоча б половину тих можливостей, які є в IDE, тим самим роблячи частину своєї роботи нудною, одноманітною, повільною... Ні, це не по-нашому! Ми повинні використовувати наш основний робочий інструмент на повну силу, щоб вичавити з нього максимум і перекласти всі найнецікавіші, повторювані дії на плечі програми.
Я не хочу і не буду описувати стандартні поради на кшталт "підтримує PHP 5. *, CSS 3. *, SVN, Git і т.д.", "Light Smarty" та інші очевидні речі. Я хотів би поділитися деякими речами, які неодноразово допомагали мені в налаштуванні netbeans, і часто залишаються непоміченими або невикористаними колегами (за моїми спостереженнями і питаннями в Twitter). Почнемо здалеку - з налаштування IDE.
Налаштування Netbeans
Видалити непотрібне
У редакторі за замовчуванням залишається не так багато місця для коду. Він переповнений різними панелями інструментів, додатковими вікнами тощо. Коли монітор більше двох десятків дюймів - це навряд чи буде проблемою. Але коли IDE використовується на ноутбуці/нетбуці - це починає дратувати.
![]()
Для початку зменшимо піктограми кнопок головної панелі інструментів:

vs

Навіть для більшого обсягу пам'яті панель інструментів у редакторі можна взагалі вилучити через контекстне меню на лівій панелі редактора.
![]()
На додаток до всього, давайте перемкнемося в повноекранний режим, натиснувши Alt+Shift+Enter. І ще одне поширене сполучення клавіш: Shift+Esc – щоб розгорнути активне вікно, повторне натискання повертає вікно того самого розміру.
В результаті нескладних маніпуляцій корисна площа для коду значно збільшилася.
![]()
Одразу ж, під час читання статті, спробуйте ці комбінації на практиці:
- по-перше - ви побачите, як саме вони працюють;
- по-друге - швидше за все, вони не вилетять з вашої голови до кінця наступного абзацу =)
Форматування коду в NetBeans
У 90% випадків IDE повністю справляється із завданням, тож нехай це робить вона, а не ми.
Однак у редакторі є деякі проблеми зі зручністю використання налаштувань форматування функції. І іноді довгі пошуки одного налаштування, щоб виправити відступ після опису методу або додати переведення рядка, можуть перетворитися на довгі пошуки. Наведемо приклад:

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


Але починаючи з версії 7.1 було додано підтримку групового вирівнювання..
Позбавлені уваги можливості NetBeans
Автоматичне видалення висячих проміжків. Ці «невидимі друзі» справді можуть попсувати нерви. Особливо під час роботи в команді..
![]()
А потім такі файли різниць у підрахунках з'являються, де крім пропусків нічого не змінилося.
![]()
Виклик вікна налаштувань , вкладка , в самому низу . І замість обирайте або , чи . Не хвилюйтеся і забудьте про зайві пробіли у вашому коді, IDE подбає про все.
Також на вкладці є кілька експериментальних варіантів . Я рекомендую включити ці пункти без зволікань:
і
Думаю, немає потреби пояснювати призначення кожної з них. На досить великих проектах в Zend Framework я не помітив жодних проблем з продуктивністю, тому користуватися цими можливостями можна і навіть потрібно.

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

Є можливість редагувати формат цих повідомлень: http://wiki.netbeans.org/FaqSubversionCustomizeAnnotation
Кольорові схеми NetBeans
Колірна схема за замовчуванням не найкраща, тому я вважаю, що адаптація стандартної схеми або навіть її заміна на іншу була б необхідним кроком до комфортного процесу розробки.
З готових схем є порт для NetBeans досить поширеної теми Solarized.
Вона доступна як у світлому, так і в темному варіанті.
Solarized Colorscheme for NetBeans.
Та інша темна тема(Twilight) для Netbeans.
NetBeans plugins
-
Відображає поточний кінець рядків у файлі і дозволяє змінити його.

http://plugins.netbeans.org/plugin/36810/show-and-change-line-endings - У правому нижньому куті з'являється піктограма. Він має відкритий/закритий замок, який відображає поточну доступність файлу для запису, і дозволяє змінювати цю властивість в один клік.
- Плагін для інтеграції PHP Mess Detector та PHP CodeSniffer у NetBeans та інструкція з встановлення та налаштування:
- Історія для буфера обміну.
-
Підтримати ZenCoding для NetBeans.
https://github.com/lorenzos/ZenCodingNetBeansPlugin#readme
Використання: поради та підказки
Перше, що потрібно привчити себе: якомога більше працювати без миші. Працювати з клавіатурою набагато швидше і продуктивніше, до того ж, не до всієї функціональності IDE можна отримати доступ через пункти меню (або вона захована так глибоко, що вам набридне шукати її мишкою знову і знову).
Гарячі клавіші NetBeans
Перше, з чого потрібно почати - роздрукувати список основних гарячих клавіш, () і заглиблюватися в неї доти, доки не дійдеш до автоматизму. А зараз я намагаюся підігрівати інтерес.
Якщо вам потрібно змінити регістр літер у довгому слові (змінна тощо), що ви зробите? Передрукували б слово ще раз? Не раджу: просто виділіть потрібні символи, натисніть 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 — вибір ідентифікатора. Насправді він повністю вибирає будь-яке слово, яке зараз містить курсор, і розміщує курсор у кінці вибраного рядка:


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

Комбінація 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:


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

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

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

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

Після нажаття Alt+Shift+E (або що ви там вставили) - генерується HTML-файл, який містить список усіх доступних функцій та ярликів до них, розділених за профілями (NetBeans, Eclipse, Idea, etc). Цей файл буде розташовано в папці з налаштуваннями NetBeans.
У моїй Ubuntu шлях до файлу, наприклад, такий:/home/{user}/.netbeans/7.1/config/shortcuts.html
Мішечок корисних речей
Якщо навести курсор на слово function тоді весь return буде виділений. А IDE коректно проігнорувала return з анонімної функції.

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

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

Якщо запускати з консолі:
*/netbeans/bin/netbeans path/to/file.php:15то файл, переданий аргументом, відкривається в NetBeans на 15-му рядку.
Починаючи з версії NetBeans 7.1, вони додали ще кілька приємних дрібниць, таких як «прямокутне» виділення коду і код масштабування в редакторі (утримуючи Ctrl+ колесо мишки).
Зручно, коли потрібно подивитися на код з висоти «пташиного польоту».

або під час презентацій, якщо потрібно вивести IDE на великий екран.
![]()
Вуууууу!
На мою думку, це найпотужніша та найуніверсальніша функція 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
Тонке налаштування шрифтів у редакторі



