Idea Live Templates定义与模板变量使用



Live Templates可以在写代码时快速构建一些常用的代码块,但idea默认的配置有时候不能满足个人使用习惯,这时可以自定义一些Live Templates来优化代码编写体验。

Setting -> Editor -> Live Templates中可以自定义活动模板

Idea Live Templates定义与模板变量使用_IDEA

 

这里 $CLASS$ 是自定义变量,可以点击 Edit variables来定义,也可以对已经定义的变量使用表达式进行一些处理来生成另一个变量。

Idea Live Templates定义与模板变量使用_IDEA_02

 

模板变量表达式含义表

以下是定义变量时支持的表达式基本含义(当匹配多个结果时结果将出现在待选列表中):


表达式

含义

annotated(<annotation>)

返回具有指定注解的类,方法或字段名

arrayVariable()

返回当前范围内数组变量,最近的优先展示

lineCommentStart()

返回当前语言指示行注释开始的字符

blockCommentStart()

返回当前语言指示块注释开始的字符

blockCommentEnd()

返回当前语言指示块注释结束的字符

commentStart()

返回当前语言指示注释开始的字符,对有行注释的返回行注释开头

commentEnd()

返回当前语言指示注释结束的字符,对有行注释的返回空(行注释通常没有结束字符)

camelCase(<String>)

将字符串转换为驼峰形式

snakeCase(<String>)

将字符串转换为下划线分割形式

spaceSeparated(<String>)

将字符串转换为空格分开形式

spacesToUnderscores(<String>)

将字符串的空格替换为下划线

capitalize(<String>)

将字符串首字母设为大写

capitalizeAndUnderscore(<String>)

将字符串转换为大写并用下划线隔开

decapitalize(<String>)

将字符串首字母设为小写

underscoresToCamelCase(<String>)

将下划线形式字符串转换为驼峰形式

underscoresToSpaces(<String>)

将下划线形式字符串转换为空格隔开形式

lowercaseAndDash(<String>)

将字符串转为小写并使用中划线分割

escapeString(<String>)

将字符串中的特殊符号进行转义,便于在java字符串中使用

substringBefore(<String>, <Delimeter>)

截取字符串在<Delimeter>之前的部分

firstWord(<String>)

返回字符串中的首个单词

castToLeftSideType()

获取左侧变量的类型判断是否需要强转

rightSideType()

获取右侧表达式的变量类型

className()

返回当前所在类(在内部类则返回内部类)类名

currentPackage()

返回当前所在包名

qualifiedClassName()

返回当前所在类(在内部类则返回内部类)的全限定类名(包+类名)

classNameComplete()

触发类名相关的代码补全

clipboard()

返回系统剪贴板的内容

complete()

调用一次代码补全,相当于调用一次Ctrl+Space

completeSmart()

调用一次智能代码补全,相当于调用一次Ctrl+Alt+Space

componentTypeOf(<array>)

返回数组类型

concat(<String>, …)

拼接字符串

date([format])

指定格式化方式返回当前系统时间字符串(根据SimpleDateFormat格式)

time([format])

指定格式化方式返回当前系统时间字符串(无日期,根据SimpleDateFormat格式)

descendantClassesEnum(<String>)

返回指定类的子类

lineNumber()

返回当前行行号

enum(<String>, …)

返回建议的字符串列表

expectedType()

自动识别并返回期望的类型,一般用于赋值,方法参数,返回语句处。

fileName()

返回当前文件名(带拓展名)

fileNameWithoutExtension()

返回当前文件名(不带拓展名)

filePath()

返回当前文件路径(带拓展名)

fileRelativePath()

返回当前文件相对当前项目的路径(带拓展名)

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

执行作为字符串形式传递的groovy脚本

guessElementType(<Collection>)

返回集合中元素的类型

iterableComponentType(<Iterable>)

返回可迭代对象的类型

iterableVariable()

返回当前范围内可迭代类型对象,最近的优先展示

methodName()

返回当前所在方法名

methodParameters()

返回当前所在方法的所有参数名

methodReturnType()

返回当前所在方法的返回类型

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

查找字符串中满足<Pattern>的所有部分并替换为<Replacement>

typeOfVariable(<String>)

返回变量的类型

variableOfType(<String>)

返回当前范围内满足类型条件的变量,最近的优先展示

suggestFirstVariableName(<String>)

返回当前范围内满足类型条件的部分变量,最近的优先展示和variableOfType类似但不推荐true,false,this,和super

subtypes(<String>)

返回指定类型的子类型

suggestIndexName()

返回当前范围中未使用的第一个常用迭代下标变量名(i,j,k等)

suggestVariableName()

根据变量命名规则的代码风格设置返回建议的变量名

suggestShortVariableName()

建议的变量名精简版

user()

返回当前系统的用户名称

 

使用方式

在代码中输入前面设置的 Abbreviation 中设置的模板名称并按 Tab 即可。