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??? →

15.02.2013 · 23 каммента · рейтинг 10.12
06.03.2008 · 29 камментов · рейтинг 7.82
30.01.2013 · 13 камментов · рейтинг 7.57
29.08.2007 · 28 камментов · рейтинг 7.48
28.03.2008 · 23 каммента · рейтинг 6.99

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

22.07.2017  СергейПочему не работает form.submit(): Также столкнулся с неработающим .submit() при отпр...
20.07.2017  СергейСвязь: Здравствуйте. Хочу предложить Вам тройной обмен п...
17.07.2017  Илья АрхипкинСколько журналистов в России?: Мне рассказывали как журналисты освещали акцию в К...
21.05.2017  Vadim GukОбработка кликов и цели в Яндекс.Метрике, улучшенный вариант: Большое спасибо за решение задачи.
20.05.2017  ДмитрийТестовое задание для PHP-программиста (Junior): А джуны ещё нужны у вас в компании?

Статсы