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

How to use variable content in WebStorm file templates

我在 WebStorm 2018.2 中有这个文件模板:

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

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

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

这道题的重点是模板的#[[$TestSuiteName$]]#部分。我想要实现的是,$TestSuiteName 被第一个模板行中计算的值替换,并且 selected 用于编辑,但可以通过按 return.[=16= 来接受]

模板现在所做的只是为 #[[$TestSuiteName$]]# 表达式打印出 "TestSuiteName",这不是我想要的。它正确的是 select 当我按下 return.

时需要的文本 "TestSuiteName"

当我将模板更改为

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

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

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

那么文件名是正确的驼峰式的,但不是 selected 并且光标立即跳转到 #[[$END$]]# 位置。

获取驼峰文件名 select 以供编辑的正确方法是什么?

目前无法做到这一点:(

$VAR$ 语法在 Webstorm 模板中有特殊含义 - 它是一种实时模板变量,一个占位符,允许将光标放在特定位置并在应用模板时编辑值。为了使此类占位符起作用,使用 #[[$VAR$]]# 语法来避免与速度变量发生冲突(#[[]]# 中的文本按原样呈现 - 请参阅 http://velocity.apache.org/engine/1.7/user-guide.html#literals)。这就是为什么在使用 #[[$TestSuiteName$]]#.

时得到变量名而不是驼峰文件名的原因

我们计划提供在文件模板中使用实时模板的全部功能(实时模板函数、预定义变量、默认值等)的可能性。错过的请投IDEA-161937, IDEA-173721和联票