2016-06-09 5 views
0

Создание шаблона кода Netbeans для создания SLF регистратора описано здесь:Как использовать фигурные скобки в шаблонах кода Netbeans, например, для шаблона slf4j?

http://wiki.netbeans.org/SLF4JCodeTemplate

Однако создание шаблонов кода для заявлений журнала, например

logger.debug("Something: {}", var); 

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

Есть несколько примеров, например, How to get current class name in Netbeans code template?, но они не касаются фигурной фигурной скобки.

Я пытался избежать их во всех отношениях я мог думать так ферме, включая:

${LOGGER default="logger" editable=false}.debug("${logMessage}${: '{}'}", ${EXP instanceof="<any>" default="exp"}); 

и

${LOGGER default="logger" editable=false}.debug("${logMessage}${: \{\}}", ${EXP instanceof="<any>" default="exp"}); 

, но не повезло. Кроме того, мои навыки Google не доводили меня до сих пор.

ответ

0

Оказывается, есть простое решение. Я не нашел его где-нибудь рядом что-нибудь о шаблонах кода NetBeans, но под вопросом о FreeMarker:

How to output ${expression} in Freemarker without it being interpreted?

В принципе, ответ заключается в использовании р «...» вокруг кода, как это:

${LOGGER default="logger" editable=false}.debug("${logMessage}${:r"{}"}", ${EXP instanceof="<any>" default="exp"}); 

Теперь это может быть назначен SLD, так что я могу ввести SLT, расширить его:

logger.debug("logMessage: {}", <last variable>); 

Где выбран «СообщениеЖурнала» (так что я могу переписать его так полезная метка, одна вкладка выбирает «: {}», поэтому я могу удалить ее, если я хочу вести журнал без параметров, и последняя вкладка выбирает, которая является последним назначенным значением (в случае, если я хочу ее заменить или удалить).