Більшість розробників проводять левову частку свого часу в середовищі розробки. Але мало хто використовує хоча б половину тих можливостей, які є в 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
Тонке налаштування шрифтів у редакторі