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

时间:2016-02-22 10:30:14

标签: intellij-idea live-templates

在Intellij IDEA 15.0.3(build#IU-143.1821)中我尝试创建一个实时模板,让我输入一个JavaScript函数名(在camelCase中),并创建一个常量(IN_UPPER_CASE)。 / p>

例如,当我键入模板缩写,然后键入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)一旦我移动到对话框中的另一个字段。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:5)

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

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