如何在WebStorm文件模板中使用可变内容

时间:2018-11-18 11:53:50

标签: webstorm velocity

我在WebStorm 2018.2中具有此文件模板:

#set($TestSuiteName = ${StringUtils.removeAndHump(${NAME}, "-")})

describe("#[[$TestSuiteName$]]#", () => {

    it("should work", () =>
    {
        #[[$END$]]#
    });
});

这个问题的重点是模板的#[[$TestSuiteName$]]#部分。我要实现的是,将$TestSuiteName替换为在第一条模板行中计算出的值,并选择进行编辑,但是可以通过按return键来接受。

模板现在所做的全部就是为#[[$TestSuiteName$]]#表达式打印出“ TestSuiteName”,这不是我想要的。正确的做法是选择文本“ TestSuiteName”,该文本在我按回车键时会显示。

当我将模板更改为

#set($TestSuiteName = ${StringUtils.removeAndHump(${NAME}, "-")})

describe("$TestSuiteName", () => {

    it("should work", () =>
    {
        #[[$END$]]#
    });
});

然后,文件名会正确驼峰驼峰,但不会被选择,并且光标会立即跳到#[[$END$]]#位置。

选择骆驼驼峰文件名进行编辑的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

当前无法执行此操作:(

$VAR$语法在Webstorm模板中具有特殊含义-这是一种实时模板变量,它是一个占位符,可以在应用模板时将光标放在特定位置并编辑值。为了使这些占位符起作用,使用了#[[$VAR$]]#语法以避免与速度变量发生冲突(#[[]]#中的文本按原样呈现-请参见http://velocity.apache.org/engine/1.7/user-guide.html#literals)。这就是使用#[[$TestSuiteName$]]#时得到变量名而不是驼峰文件名的原因。

我们计划提供一种可能性,以在文件模板中使用实时模板的全部功能(实时模板功能,预定义变量,默认值等)。如果错过了,请投票给IDEA-161937IDEA-173721和链接的票证