如何使用另一个变量创建带有表达式的实时模板?

How do I create a live template with an expression using another variable?

在 Intellij IDEA 15.0.3(build #IU-143.1821)中,我正在尝试创建一个实时模板,它可以让我输入一个 JavaScript 函数名称(驼峰式),并创建一个常量 ( IN_UPPER_CASE).

例如,当我输入模板缩写,然后输入 sendUserNameAndPassword 时,模板应扩展为

export const SEND_USERNAME_AND_PASSWORD = 'SEND_USERNAME_AND_PASSWORD';

export function sendUserNameAndPassword() {

}

我创建了这个模板:

export const $CONSTANT_NAME$ = '$CONSTANT_NAME$';

export function $FUNCTION_NAME$() {
   $END$
}

编辑变量对话框中,我有以下变量:

Name          | Expression                      | Default value | Skip if defined
FUNCTION_NAME |                                 |               |
CONSTANT_NAME | capitalizeAndUnderscore(String) |               |        x 

显然,我希望表达式为 capitalizeAndUnderscore(FUNCTION_NAME) 而不是 capitalizeAndUnderscore(String),但是当我将 String 替换为其他任何内容时,表达式将重置为 capitalizeAndUnderscore(String) 一旦我移动到对话框中的另一个字段。

我在这里错过了什么?

这似乎是 Intellij IDEA 中已确认的错误:https://youtrack.jetbrains.com/issue/IDEA-132965

简而言之,当前的解决方法是: 编辑表达式后,不要移动到另一个字段或按Return;直接点击 OK 按钮。这将保存您的编辑。
然后,您必须重新打开 编辑变量 对话框才能进行更多编辑。