我如何在 Netbeans 代码模板中使用大括号,例如 slf4j 模板?
How can I use curly braces in Netbeans code templates for example for an slf4j template?
此处描述了创建用于创建 slf 记录器的 Netbeans 代码模板:
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 技能也一直让我失望。
原来有一个简单的解决方案。我没有在任何关于 netbeans 代码模板的地方找到它,但是在关于 freemarker 的问题下:
How to output ${expression} in Freemarker without it being interpreted?
基本上答案是在代码周围使用 r"...",如下所示:
${LOGGER default="logger" editable=false}.debug("${logMessage}${:r"{}"}", ${EXP instanceof="<any>" default="exp"});
现在可以赋值给sld了,所以我可以输入slt,展开为:
logger.debug("logMessage: {}", <last variable>);
选择 "logMessage" 的地方(这样我可以用有用的东西覆盖它,一个选项卡选择“:{}”所以如果我想不带参数登录,我可以删除它,最后一个选项卡选择哪个是最后分配的值(如果我想替换或删除它)。
此处描述了创建用于创建 slf 记录器的 Netbeans 代码模板:
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 技能也一直让我失望。
原来有一个简单的解决方案。我没有在任何关于 netbeans 代码模板的地方找到它,但是在关于 freemarker 的问题下:
How to output ${expression} in Freemarker without it being interpreted?
基本上答案是在代码周围使用 r"...",如下所示:
${LOGGER default="logger" editable=false}.debug("${logMessage}${:r"{}"}", ${EXP instanceof="<any>" default="exp"});
现在可以赋值给sld了,所以我可以输入slt,展开为:
logger.debug("logMessage: {}", <last variable>);
选择 "logMessage" 的地方(这样我可以用有用的东西覆盖它,一个选项卡选择“:{}”所以如果我想不带参数登录,我可以删除它,最后一个选项卡选择哪个是最后分配的值(如果我想替换或删除它)。