Dubrowsky
Хроники одного дупла
Блогово  →  WebDev  → 

Шаблоны кода в NetBeans (Code Templates) и "сокращения" (abbreviations) в jEdit

25 Декабря 2012 года

Не так давно ваш покорный слуга в своих пыхарских делишках пересел-таки на NetBeans. По крайней мере - в основном рабочем проекте. Пока обустраиваю рабочее пространство, пытаясь добиться, чтоб этот монстр вел себя похоже на мой любимый jEdit. Вот, разобрался с шаблонами кода.

В редакторе jEdit, с которым я прожил много лет, есть такая штука - "Abbreviations", совершенно незаменимая, особенно при работе со всякими многословными языками типа XSLT. Например, чтоб вставить ужасающую конструкцию:

<xsl:value-of select="$node" disable-output-escaping="yes" />

- я пишу "xvd", жму "Ctrl+;" - и вот, страшилище уже в моем редакторе, а курсор стоит там, куда надо вбить выбираемую ноду. Как этого добиться:

  • Utilities / Global Options (короче - Ctrl+F12) / Abbreviations
  • при необходимости - выбираем режим редактирования, где будет работать сокращение - например "xsl"
  • жмем плюсик внизу
  • Abbreviation: xvd
  • Text to insert before carret:
  • OK - наступает радость!

Кстати, в jEdit есть набор предустановленных сокращений для XSLT, и довольно осмысленный.

Теперь пробуем сделать то же самое в NetBeans. Поскольку NetBeans - это IDE, там, как и положено, есть такой функционал, с большущим комплектом опций и, разумеется, нифига не понятно и все сложно - на то и IDE :)

Итак, в моей русифицированной версии:

  • Сервис / Параметры / Редакторе (OMG! так и написано) / Шаблоны кода
  • Выбираем язык, например PHP
  • Жмем "Новый"
  • Сокращение: например, prnt
  • Раскрытый текст:
    echo htmlspecialchars(print_r($$${var},1));
  • Сохраняем, пишем в коде prnt, жмем Tab
  • Шаблон вставляется в код вот так:
    echo htmlspecialchars(print_r($var, 1));
  • Выделение ставится на "var" - вбиваем название переменной, которую хотим распечатать, жмем Enter - курсор уходит в конец строки. 

Конструкция $$${var} - это $$ (экранированный доллар) + ${var} - параметр, который надо заполнить. В шаблоне может быть несколько параметров, фокус перемещается последовательно при заполнении и нажатии Enter.

Параметры могут использоваться несколько раз в одном шаблоне. Вот чуть более сложный пример. Создаем вот такой шаблон, обзываем "clvar" например:

${VARIABLE variableFromPreviousAssignment default="$var"} = trim(${VARIABLE editable=false});
${VARIABLE editable=false} = preg_replace('~\s+~', ' ', ${VARIABLE editable=false});
${cursor}

Теперь пишем:

$x = '123';
// вот тут мы написали clvar и нажали таб
// появилось следующее:
$x = trim($x);
$x = preg_replace('~\s+~', ' ', $x);

Ага, он нашел ближайшую присвоенную переменную в коде перед шаблоном, и использовал ее название в качестве параметра. При этом мы можем это название изменить и нажать Enter - поменяется во всем шаблоне.

Более развернутый мануал по применению шаблонов кода в NetBeans - вот тут, на русском.

Уставшим от тяжелого трудового программерского дня рекомендую забыться, окунувшись в виртуальную реальность. Вот тут http://www.free-game-club.com/war-games есть большой выбор игр-войнушек на любой вкус.

Камменты

cleam25.12.2012, 13:13#
Переходи уж сразу на http://www.jetbrains.com/phpstorm/ от JetBrains.

Уверен, он гораздо пиздатее!
Дуброн самый25.12.2012, 13:43#
Клим, я его пощупал тоже. У нас в конторе все юзают NetBeans, поэтому решил на нем остановиться.

Написать коммент: памятка постеру

 

Крутые посты wtf??? →

28.04.2008 · 44 каммента · рейтинг 9.84
06.03.2008 · 29 камментов · рейтинг 7.93
30.01.2013 · 13 камментов · рейтинг 7.8
29.08.2007 · 28 камментов · рейтинг 7.58
20.03.2014 · 7 камментов · рейтинг 6.68

Последне камменты

18.04.2017  ДубрОбработка кликов и цели в Яндекс.Метрике, улучшенный вариант: Вячеслав, блин, я там скобку потерял =) Обновил, ...
17.04.2017  Вячеславтам же: вот http://www.totalat.ru/service/remont-akpp-bmw/
17.04.2017  Вячеславтам же: Вашу версию вставил. Даже alert проверочный вывод...
17.04.2017  Вячеславтам же: То что вы там запостили это вместо последнего куск...
17.04.2017  Дубртам же: Привет! 1) код лучше запостить куда-нибудь на ht...

Статсы