实时模板变量
展开实时模板缩写时,其变量将显示为输入字段,您可以在其中输入值或替换为值。这些可能是您可以修改的默认值,也可能是使用函数计算的值。
模板中的变量以以下格式声明:
$$
每个变量都由表达式定义,并且在表达式无法求值的情况下可以接受一些默认值。
该表达式可能包含以下基本类型的构造:
双引号中的字符串常量。
实时模板中定义的另一个变量的名称。
带有可能参数的预定义函数。
可以在“ 编辑模板变量”对话框中配置模板变量 。
配置模板变量
选择要在其中配置变量的模板。
在模板文本中指定变量,然后单击编辑变量
-
在打开的对话框中,您可以对每个变量执行以下操作:
更改变量名称。
使用预定义的函数定义表达式。
为表达式无法求值的情况指定默认值。
如果变量是使用其表达式定义的,则指定在提示用户输入时是否要跳过该变量。
预定义模板变量
WebStorm支持以下无法修改的预定义实时模板变量:
$END$
表示代码段完整后的光标位置,您无法再按Tab跳到下一个变量。$SELECTION$
在环绕模板中使用,表示要包装的代码片段。扩展模板后,将按照模板中的指定包装所选文本。例如,如果您选择EXAMPLE
在您的代码中并调用"$SELECTION$"
模板通过指定的缩写或按Ctrl+Alt+T然后从列表中选择所需的模板,WebStorm会将选择内容用双引号引起来,如下所示:"EXAMPLE"
。
实时模板变量中使用的预定义函数
以下功能可用于定义实时模板变量:
功能 | 描述 |
---|---|
blockCommentEnd | 返回表示当前语言上下文中块注释结尾的字符。 |
blockCommentStart | 返回表示当前语言上下文中块注释开始的字符。 |
camelCase(String) | 将字符串转换为camelCase。例如, |
capitalize(String) | 大写参数的首字母。 |
capitalizeAndUnderscore(String) | 将作为参数传递的CamelCase名称的所有字母大写,并在各部分之间插入下划线。例如, |
classNameComplete() | 该表达式替代变量位置处的类名完成 。 |
clipboard() | 返回系统剪贴板的内容。 |
commentEnd() | 返回表示当前语言上下文中注释结尾的字符。如果以当前语言定义了行注释,则返回值为空。 |
commentStart() | 返回表示当前语言上下文中注释开始的字符。如果以当前语言定义了行注释,则最好使用开始指示符。 |
complete() | 在变量的位置调用代码完成。 |
completeSmart() | 在变量的位置调用智能类型完成。 |
concat(expressions...) | 返回作为参数传递给函数的所有字符串的串联。 |
dartIterableVariable() | 返回可以迭代的变量的名称。 |
dartListVariable() | 返回数组元素的列表。 |
dartSuggestIndexName() | |
dartSuggestVariableName() | 根据引用变量命名规则的代码样式设置,根据变量的类型和初始化表达式返回变量的建议名称。 |
date(sDate) | 以指定格式返回当前系统日期。 如果没有参数,则以默认系统格式返回当前日期。 要使用其他格式,请根据SimpleDateFormat规范提供一个参数。例如功能 |
decapitalize(sName) | 用相应的小写字母替换参数的第一个字母。 |
defaultReturnValues | 如果在return语句中使用表达式,则返回默认值。使用 |
enum(sCompletionString1,sCompletionString2,...) | 返回扩展模板时建议完成的逗号分隔字符串的列表。 |
escapeString(sEscapeString) | 转义指定为参数的字符串。 |
expectedType() | 返回模板扩展到的表达式的预期类型。如果模板在作业后的右侧扩展,则很有意义 |
fileName() | 返回带有扩展名的当前文件的名称。 |
fileNameWithoutExtension() | 返回没有扩展名的当前文件的名称。 |
filePath() | 返回当前文件的绝对路径。 |
fileRelativePath() | 返回当前文件的相对路径。 |
firstWord(sFirstWord) | 返回作为参数传递的字符串的第一个单词。 |
groovyScript("groovy code", arg1) | 返回带有指定代码的Groovy脚本。 您可以使用 |
JsArrayVariable() | 返回当前JavaScript数组的名称。 |
jsClassName() | 返回当前JavaScript类的名称。 |
jsComponentTypeOf() | 返回当前JavaScript组件的类型。 |
jsDefineParameter | 根据模块的名称,从中返回参数 |
jsMethodName() | 返回当前JavaScript方法的名称。 |
jsQualifiedClassName() | 返回当前JavaScript类的全名。 |
jsSuggestIndexName() | |
jsSuggestVariableName() | 根据引用变量命名规则的代码样式设置,根据变量的类型和初始化表达式返回变量的建议名称。 |
jsSuggestDefaultVariableKind(Boolean) | 布尔参数确定在当前上下文中是否允许使用常量。如果未指定任何参数,则允许使用常量。模板展开后,将显示一个列表,其中包含 |
jsSuggestImportedEntityName() | 建议类型的导入语句的名称 |
lineCommentStart | 返回表示当前语言上下文中行注释开头的字符。 |
lineNumber() | 返回当前行号。 |
lowercaseAndDash(String) | 将camelCase字符串转换为小写并插入n-破折号作为分隔符。例如, |
regularExpression(String, Pattern, Replacement) | 查找所有出现的 |
snakeCase(String) | 将字符串转换为snake_case。例如, |
spaceSeparated(String) | 将字符串转换为小写并插入空格作为分隔符。例如, |
spacesToUnderscores(sParameterWithSpaces) | 用作为参数传递的字符串中的下划线替换空格。例如, |
substringBefore(String,Delimiter) | 在指定的分隔符后删除扩展名,仅返回文件名。这对于测试文件名很有帮助(例如, |
time(sSystemTime) | 以指定格式返回当前系统时间。 如果没有参数,则以默认系统格式返回当前时间。 要使用其他格式,请根据SimpleDateFormat规范提供一个参数。例如功能 |
underscoresToCamelCase(String) | 用作为参数传递的字符串中的camelCase字母替换下划线。例如, |
underscoresToSpaces(sParameterWithUnderscores) | 将下划线替换为作为参数传递的字符串中的空格。例如, |
user() | 返回当前用户的名称。 |