【GoLand教程】GoLand Live templates 实时模版变量

展开实时模板缩写时,其变量要么显示为输入字段,您可以在其中键入值,要么替换为值。这些可能是您可以修改的默认值或使用函数计算的值。
要在模板中声明变量,请使用以下格式:$VAR$
.
在表达式中,使用变量名,不要打开和关闭美元字符$
,例如,lowercaseAndDash(ComponentName)
.
要将美元字符添加
$
到模板文本中以使其不被视为变量声明,请使用特殊变量$$
。
使用表达式定义每个变量,并为表达式无法评估的情况提供默认值。
此表达式可能包含以下结构:
- 双引号中的字符串常量
- 实时模板中定义的其他变量的名称
- 带有可能参数的预定义函数
配置模板变量
- 在Settings/Preferences对话框 ( Ctrl+Alt+S) 中,转到Editor | 实时模板。
- 选择要在其中配置变量的模板。
- 在模板文本中指定变量,然后单击编辑变量。
在“编辑模板变量”对话框中,您可以对每个变量执行以下操作:
- 更改变量名
- 使用预定义函数定义表达式
- 指定表达式无法计算时的默认值
- 如果表达式计算成功,则指定在提示用户输入时是否要跳过变量
预定义的模板变量
GoLand 支持以下无法修改的预定义实时模板变量:
$END$
表示代码片段完成后光标所在的位置,不能再按Tab跳转到下一个变量。$SELECTION$
在环绕模板中使用,表示要包装的代码片段。模板展开后,它将按照模板中指定的方式包装选定的文本。例如,如果您EXAMPLE
在代码中选择并"$SELECTION$"
通过分配的缩写或通过Ctrl+Alt+T从列表中按下并选择所需模板来调用模板,GoLand 将用双引号将选择括起来,如下所示:"EXAMPLE"
.
实时模板变量中使用的函数
以下函数可用于定义实时模板变量:
功能 | 描述 |
---|---|
blockCommentEnd() | 返回指示当前语言上下文中块注释结束的字符。 |
blockCommentStart() | 返回指示当前语言上下文中块注释开始的字符。 |
camelCase(<String>) | 将字符串转换为camelCase。例如,camelCase("my-text-file") ,camelCase("my text file") ,并且camelCase("my_text_file") 全部返回myTextFile 。 |
capitalize(<String>) | 将字符串的第一个字母大写。例如,capitalize("name") 返回Name . 或者你可以将它组合capitalize(camelCase("my awesome class")) 成MyAwesomeClass . |
capitalizeAndUnderscore(<String>) | 将字符串的所有字母大写,并在各部分之间插入下划线。例如,capitalizeAndUnderscore("FooBar") ,capitalizeAndUnderscore("foo bar") ,并且capitalizeAndUnderscore("foo-bar") 全部返回FOO_BAR 。 |
clipboard() | 返回系统剪贴板的内容。 |
commentEnd() | 返回指示当前语言上下文中注释结束的字符。对于带有行注释的语言,返回值为空。 |
commentStart() | 返回指示当前语言上下文中注释开始的字符。对于带有行注释的语言,返回值是行注释的开始,与lineCommentStart()相同。 |
complete() | 在变量的位置调用代码完成。 |
completeSmart() | 在变量的位置调用智能类型完成。 |
concat(<String>, ...) | 返回作为参数传递给函数的所有字符串的串联。例如,concat(date()," ",user()) 返回当前系统日期和用空格分隔的用户名。 |
date([format]) | 返回当前系统日期。默认情况下,不带参数,它以当前系统格式返回日期。要使用不同的格式,请根据SimpleDateFormat规范提供参数。例如,date("Y-MM-d, E, H:m") 返回格式为 的日期2020-02-27, Thu, 16:11 。 |
dbColumns() | 返回表或视图的列列表。用于上下文实时模板(dbColumns() 例如,ins )。您可以通过右键单击对象并选择SQL Scripts来访问上下文实时模板。 |
dbObjectName() | 返回表或视图的名称。用于上下文实时模板(dbObjectName() 例如,top )。您可以通过右键单击对象并选择SQL Scripts来访问上下文实时模板。 |
decapitalize(<String>) | 用相应的小写字母替换字符串的第一个字母。例如,decapitalize("Name") 返回name . |
defaultReturnValues | 如果在 return 语句中使用表达式,则返回默认值。errorVariableName 如果表达式属于错误类型,则使用参数。 |
enum(<String>, ...) | 返回模板展开时建议完成的字符串列表。例如,enum("Foo","Bar","Baz") 显示一个列表,您可以从中选择一个指定的字符串。 |
errorVariable() | 返回当前上下文中的第一个错误变量。自动完成当前上下文中的所有错误变量。 |
errorVariableDefinition(expressionWithErrorResult) | 如果表达式返回错误类型,则将表达式转换为变量定义。例如,如果a() 函数返回(int, error) ,则errorVariableDefinition("a()") 表达式返回_, err 。 |
escapeString(<String>) | 转义特殊字符,以便可以在 Java 字符串中使用结果。例如,它将制表符替换为\t ,换行符替换为\n ,将反斜杠转义为\\ ,引号替换为\" ,等等。 |
fieldName() | 返回当前上下文中的第一个字段名称。自动完成当前上下文中的所有字段名称。 |
fileName() | 返回当前文件的名称及其扩展名。 |
fileNameWithoutExtension() | 返回当前文件的名称,不带扩展名。 |
filePath() | 返回当前文件的绝对路径。 |
fileRelativePath() | 返回相对于当前项目的当前文件路径。要检查给定文件的相对路径,请右键单击它并选择Copy Reference,或按Ctrl+Alt+Shift+C。 |
firstWord(<String>) | 返回作为参数传递的字符串的第一个单词。例如,firstWord("one two three") 返回one . |
groovyScript(<String>, [arg, ...]) | 执行作为字符串传递的 Groovy 脚本。第一个参数是一个字符串,其中包含脚本的文本或包含脚本的文件的路径。该函数将其他可选参数作为_1 、_2 、_3 、 ..._n 变量的值传递给脚本。此外,您可以使用该_editor 变量从脚本内部访问当前编辑器。以下示例显示了一个groovyScript() 函数,该函数将所选文本拆分为单词并将它们显示为编号列表:groovyScript("def result = ''; _1.split().eachWithIndex { item, index -> result = result + index.next() + '. ' + item + System.lineSeparator() }; return result;", SELECTION); |
goFunctionParameters() | 从函数签名中建议参数列表。例如,在func exampleFunction(str1, str2 string) 函数内部goFunctionParameters() 返回[str1, str2] .![]() |
goFunctionResultParameters() | 建议函数的返回参数列表。例如,在func exampleFunction() (str string, i int) 函数内部goFunctionResultParameters() 返回[str, i] .![]() |
goSuggestVariableName() | 在你有这个变量的 Go 代码的上下文中建议一个变量名。此表达式用于for 实时forr 模板。例如,表达式建议k for 键和v for 值。 |
lineCommentStart() | 返回指示当前语言上下文中行注释开始的字符。 |
lineNumber() | 返回当前行号。 |
localName() | 限定变量名。localName 表达式接收导入路径和名称。如果在文件中导入了路径,则表达式将此导入的路径作为限定符,否则添加新的导入。结果是qualifier.name 。请注意,如果文件位于导入路径所寻址的包中,则表达式可能会跳过限定符。该表达式用于.sort 后缀模板。要使此模板正常工作,您需要sort 包中的一个必须导入的函数。 |
lowercaseAndDash(<String>) | 将字符串转换为小写并插入 n 破折号作为分隔符。例如,lowercaseAndDash("MyExampleName") 两者lowercaseAndDash("my example name") 都返回my-example-name . |
nonBlankVariable | 接收表达式列表作为输入并返回第一个非空表达式_ 。例如,_,_,a,b 返回a . |
regularExpression(<String>, <Pattern>, <Replacement>) | 查找 a 中所有出现的Pattern 并String 用 替换它们Replacement 。您可以将模式指定为正则表达式以在字符串中查找与其匹配的所有内容。 |
showParameterInfo() | 向函数或方法添加参数时返回参数详细信息。 |
snakeCase(<String>) | 将字符串转换为snake_case。例如,snakeCase("fooBar") 两者snakeCase("foo bar") 都返回foo_bar . |
spaceSeparated(<String>) | 返回以空格作为分隔符的指定字符串。例如,spaceSeparated("fooBar") 退货foo Bar 和spaceSeparated("Foo_BAR") 退货Foo BAR 。 |
spacesToUnderscores(<String>) | 将作为参数传递的字符串中的空格替换为下划线。例如,spacesToUnderscores("foo bar BAZ") 返回foo_bar_BAZ . |
substringBefore(<String>, <Delimeter>) | 返回子字符串直到指定的分隔符。这有助于删除测试文件名中的扩展名。例如,如果在名为component-test.jssubstringBefore(fileName(),".") 的文件中使用,则返回。component-test |
time([format]) | 返回当前系统时间。默认情况下,不带参数,以当前系统格式返回时间。要使用不同的格式,请根据SimpleDateFormat规范提供参数。例如,time("H:m z") 返回格式为 的时间13:10 UTC 。 |
underscoresToCamelCase(<String>) | 将带下划线的字符串(如snake_case)转换为camelCase。例如,underscoresToCamelCase(foo_bar_baz) 两者underscoresToCamelCase(FOO_BaR_baZ) 都返回fooBarBaz . |
underscoresToSpaces(<String>) | 将字符串中的下划线转换为空格。例如,underscoresToSpaces(foo_bar_baz) 退货foo bar baz 和underscoresToSpaces(FOO_BaR_baZ) 退货FOO BaR baZ 。 |
user() | 返回当前用户的名称。 |