GoLand 2025.2 Help

实时模板变量

When you expand a live template abbreviation, its variables either appear as input fields where you can type values or are replaced with values. 这些值可能是可以修改的默认值,或通过 函数计算得出的值。

要在模板中声明变量,请使用以下格式: $VAR$

在表达式中,使用变量名称时请不要添加前后的美元符号 $ ,例如: lowercaseAndDash(ComponentName)

使用表达式定义每个变量,并在表达式计算失败时提供默认值。

该表达式可能包含以下结构:

  • 用双引号括起来的字符串常量

  • 实时模板中定义的其他变量名称

  • 带可选参数的 预定义函数

配置模板变量

  1. 设置 对话框(Ctrl+Alt+S )中,转到 编辑器 | 实时模板

  2. 选择要配置变量的模板。

  3. 在模板文本中指定变量,并单击 编辑变量(E)…

  4. 编辑模板变量 对话框中,您可以为每个变量执行以下操作:

    • 更改变量名称。

    • 使用 预定义函数定义表达式。

    • 为表达式计算失败的情况指定默认值。 默认值应使用双引号括起来。

    • 指定当表达式成功计算时,是否在提示用户输入时跳过该变量。

    实时模板变量

预定义模板变量

GoLand 支持以下不可修改的预定义实时模板变量:

  • $END$ 表示代码片段完成时光标所在的位置,此时无法再按 Tab 跳转到下一个变量。

  • $SELECTION$ 用于环绕模板,表示要包裹的代码片段。 展开模板后,将根据模板中指定的方式包裹所选文本。 例如,如果您在代码中选择 EXAMPLE ,然后通过指定的缩写或按 Ctrl+Alt+T 并从列表中选择所需模板来调用 "$SELECTION$" 模板,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])

返回当前系统日期。

By default, without a parameter, it returns the date in the current system format. 要使用不同的格式,请根据 SimpleDateFormat 规范提供一个参数。 例如, date("Y-MM-d, E, H:m") 返回的日期格式为 2020-02-27, Thu, 16:11

dbColumns()

Returns a list of columns for a table or a view. dbColumns() 用于上下文实时模板(例如, ins)。 您可以右键单击某个对象并选择 SQL 脚本 来访问上下文实时模板。

dbObjectName()

Returns a name of a table or a view. dbObjectName() 用于上下文实时模板(例如, top)。 您可以通过右键点击某个对象并选择 SQL 脚本 来访问上下文实时模板。

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()

返回当前文件相对于当前项目的路径。 要查看某个文件的相对路径,请右键点击该文件并选择 复制引用 ,或按 Ctrl+Alt+Shift+C

firstWord(<String>)

返回作为参数传递的字符串的第一个单词。

例如, firstWord("one two three") 返回 one

groovyScript(<String>, [arg, ...])

执行作为字符串传入的 Groovy 脚本。

The first argument is a string with either the text of the script or the path to the file that contains the script. 函数将其他可选参数作为 _1_2_3,…、 _n 变量的值传递给脚本。 此外,您可以在脚本内部使用 _editor 变量访问当前编辑器。

以下示例展示了一个 groovyScript() 函数,该函数将给定字符串(即另一个变量 $MyVar$ 的值)转换为大写字母:

groovyScript("_1.toUpperCase()", MyVar)

以下示例展示了一个 groovyScript() 函数,该函数将所选文本拆分为单词并以编号列表形式显示:

groovyScript("def result = ''; _1.split().eachWithIndex { item, index -> result = result + index.next() + '. ' + item + System.lineSeparator() }; return result;", SELECTION)

最后一个示例使用了 SELECTION 预定义变量,意味着您需要选择文本并按下 Ctrl+Alt+T包围代码 )以应用。

goFunctionParameters()

建议来自函数签名的参数列表。

例如,在 func exampleFunction(str1, str2 string) 函数中, goFunctionParameters() 返回 [str1, str2]

goFunctionResultParameters()

建议函数的返回参数列表。

例如,在 func exampleFunction() (str string, i int) 函数中, goFunctionResultParameters() 返回 [str, i]

goSuggestVariableName()

在 Go 代码上下文中建议变量名称,在该上下文中存在该变量。 该表达式用于 forforr 实时模板中。 例如,该表达式为键建议 k ,为值建议 v

lineCommentStart()

返回当前语言上下文中表示行注释起始的字符。

lineNumber()

返回当前行号。

localName()

限定变量名称。 localName 表达式接收导入路径和名称。 如果路径已在文件中导入,则表达式将此导入路径作为限定符,否则添加新导入。 结果为 qualifier.name。 请注意,如果文件属于由导入路径指向的包,则表达式可能跳过限定符。

该表达式用于 .sort 后缀模板中。 为了使该模板正常工作,必须导入来自 sort 包的函数。

lowercaseAndDash(<String>)

将字符串转换为小写,并用 n-dash 作为分隔符插入。 例如, lowercaseAndDash("MyExampleName")lowercaseAndDash("my example name") 都返回 my-example-name

nonBlankVariable

接收一个表达式列表作为输入,并返回第一个非空表达式 _。 例如, _,_,a,b 返回 a

regularExpression(<String>, <Pattern>, <Replacement>)

查找 PatternString 中的所有出现,并用 Replacement 替换。 您可以将模式指定为正则表达式,以便在字符串中查找所有匹配内容。

例如, regularExpression(NAME, "a", "b") 表达式会将 $NAME$ 模板变量中的字母 “a” 替换为字母 “b”。 您可以在模式部分中使用正则表达式字符类,例如, regularExpression(NAME, "[a-z]", "b") 将替换变量中的任意字母。 如果希望将 \d\w 等模式视为正则表达式字符类,则必须对斜杠进行转义,使模式显示为 "\\d"

showParameterInfo()

添加参数到函数或方法时,返回参数详情。

snakeCase(<String>)

将字符串转换为 snake_case。 例如, snakeCase("fooBar")snakeCase("foo bar") 都返回 foo_bar

spaceSeparated(<String>)

返回使用空格作为分隔符的指定字符串。 例如, spaceSeparated("fooBar") 返回 foo BarspaceSeparated("Foo_BAR") 返回 Foo BAR

spacesToUnderscores(<String>)

将传入字符串中的空格替换为下划线。 例如, spacesToUnderscores("foo bar BAZ") 返回 foo_bar_BAZ

substringBefore(<String>, <Delimeter>)

返回指定分隔符之前的子字符串。 这在移除测试文件名中的扩展名时非常有用。 例如, substringBefore(fileName(),".") 在文件名为 component-test.js 时返回 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 bazunderscoresToSpaces(FOO_BaR_baZ) 返回 FOO BaR baZ

user()

返回当前用户的名称。

最后修改日期: 2025年 9月 26日