IntelliJ IDEA Live Temlates功能使用举例介绍

Live Templates介绍

IDEA的Live Templates功能使用起来可以提高很多编码效率,谁用谁知道,自带的功能就已经很强大,关于自带模版短语请自行查找,而如何添加自定义短语模版网上也是一抓一大把,但是大多都是抄来抄去,重复介绍功能菜单在哪里进入,缺少了案例,导致很多初学者都摸不着道,这里简单介绍一些使用样例,经验不足还忘指教。

如何添加自定义短语模版

  1. ctrl+alt+s打开设置窗口
  2. 选择editor > live templates
  3. 新增或者选择自己喜欢的分组
  4. 点击右上角的加号,添加live template
    如何添加自定义短语

模版介绍

  1. Abbreviation设置短语
  2. Template text模版内容
  3. Edit variables编辑自定义变量
  4. Applicable设置短语有效位置(表达式?方法内?类和方法定义区?)
    模版使用介绍

定义变量

在模版内容里写预设模版,使用$符号包裹的字符串将作为变量,可以通过Edit variables设置来输入和替换想要的实际内容。

Name变量名

Expression变量表达式,可以使用预设的方法来修饰变量内容

Default value顾名思义,填写默认值

Skip if define如果这个变量只是用来获取内容而不需要手动输入,可以勾选此项

模版变量关联

这里使用了预设方法camelCase对应的反向转换是capitalizeAndUnderscoreciName是待输入项,strName调用了camelCase方法并传入ciName,关联ciName的输入,转为驼峰命名法。
变量关联举例
变量关联使用举例

获取编辑器上下文中的变量

可以通过completeSmart方法获取上下文中定义的变量,其中$END$为预设变量,当自定义变量输入完成后按Tab光标会跳到这里(选定智能匹配对象后光标会跳到括号后面)
获取编辑器上下文中的变量
在这里插入图片描述

获取当前类名和方法名

通过classNamemethodName方法可以获取到当前类的类名和当前方法的方法名
获取当前类名
获取当前类名

Applicable选择作用范围

statement表示方法内部
expression是表达式里,比如if()的括号内部和方法内部也可以
declaration在类的定义变量的地方
applicatable介绍

预设的Expression方法

以下函数可用于定义实时模板变量:
摘抄自: http://www.jetbrains.com/help/idea/template-variables.html.

功能

描述

annotated("annotation qname")

使用驻留在指定位置的注释创建类型的符号。有关示例,请参阅迭代组中的实时模板

anonymousSuper()

建议Kotlin对象表达式的超类型。

arrayVariable()

建议适用于当前范围的所有数组变量。有关示例,请参阅迭代组中的实时模板。

blockCommentEnd

返回表示当前语言上下文中块注释结束的字符。

blockCommentStart

返回指示当前语言上下文中块注释开始的字符。

camelCase(String)

将字符串转换为camelCase。例如camelCase(my-text-file)camelCase(my text file)camelCase(my_text_file)所有的回报myTextFile

capitalize(String)

大写参数的第一个字母。

capitalizeAndUnderscore(sCamelCaseName)

将作为参数传递的CamelCase名称的所有字母大写,并在各部分之间插入下划线。例如,capitalizeAndUnderscore(FooBar)退货 FOO_BAR

castToLeftSideType()

将右侧表达式转换为左侧表达式类型。它在迭代组中用于生成单个模板,用于生成原始类型和泛型集合。

className()

返回当前类的名称(扩展模板的类)。

classNameComplete()

此表达式替换变量位置处的类名称完成

clipboard()

返回系统剪贴板的内容。

commentEnd()

返回指示当前语言上下文中注释结尾的字符。如果以当前语言定义行注释,则返回值为空。

commentStart()

返回指示当前语言上下文中注释开头的字符。如果使用当前语言定义行注释,则最好使用其开始指示符。

complete()

在变量的位置调用代码完成。

completeSmart()

在变量的位置调用智能类型完成。

componentTypeOf(<array>)

返回数组的组件类型。例如,请参阅迭代组和另一组中的实时模板。

concat(expressions...)

返回作为参数传递给函数的所有字符串的串联。

currentPackage()

返回当前包名称。

date(sDate)

以指定格式返回当前系统日期。

如果没有参数,则以默认系统格式返回当前日期。

日期格式
decapitalize(sName)

用相应的小写字母替换参数的第一个字母。

defaultReturnValues

如果在return语句中使用表达式,则返回默认值。errorVariableName如果表达式是错误类型,则使用 参数。

descendantClassEnum(<String>)

返回指定为字符串参数的类的子级。

enum(sCompletionString1,sCompletionString2,...)

返回扩展模板时建议完成的逗号分隔字符串列表。

escapeString(sEscapeString)

转义指定为参数的字符串。

expectedType()

返回模板扩展到的表达式的预期类型。如果模板在作业的正确部分,之后return等扩展,则会有意义。

fileName()

返回当前文件的名称及其扩展名。

fileNameWithoutExtension()

返回没有扩展名的当前文件的名称。

firstWord(sFirstWord)

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

groovyScript("groovy code", arg1)

返回具有指定代码的Groovy脚本。

您可以使用groovyScript()具有多个参数的函数。第一个参数是要执行的脚本的文本或包含该脚本的文件的路径。接下来的参数被绑定到_1_2_3,... _n变量中提供的脚本中。此外,该_editor变量在脚本中可用。此变量绑定到当前编辑器。

guessElementType (<container>)

猜测存储在a中的元素的类型java.util.Collection。为了猜测,IntelliJ IDEA试图找到元素被添加到容器或从容器中提取的位置。

iterableComponentType(<ArrayOrIterable>)

返回可迭代组件的类型,例如数组或集合。

iterableVariable()

返回可以迭代的变量的名称。

JsArrayVariable()

返回当前JavaScript数组的名称。

jsClassName()

返回当前JavaScript类的名称。

jsComponentTypeOf()

返回当前JavaScript组件的类型。

jsDefineParameter

根据模块的名称,返回参数 define(["module"], function (<parameter_in_question>>) {})

jsMethodName()

返回当前JavaScript方法的名称。

jsQualifiedClassName()

返回当前JavaScript类的完整名称。

jsSuggestIndexName()

返回一个建议的名称从最常用的一个指标变量: ijk等未在当前范围内尚未使用的名称是第一个显示。

jsSuggestVariableName()

根据引用变量命名规则的代码样式设置,根据变量类型和初始化表达式返回变量的建议名称。
例如,如果它是一个在迭代中保存元素的变量,IntelliJ IDEA会猜测最合理的名称,同时考虑迭代的容器的名称。

jsSuggestDefaultVariableKind(Boolean)

Boolean参数确定当前上下文中是否允许常量。如果未指定参数,则允许使用常量。当模板扩展,列表显示有varletconst为打字稿和ES6和只有一个选项var为早期版本的JavaScript选项。

jsSuggestImportedEntityName()

建议该类型的import语句的名称 `import * as $ITEM$ from "$MODULE$"``import $ITEM$ from "$MODULE$"` 基于文件名。

lineCommentStart

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

lineNumber()

返回当前行号。

lowercaseAndDash(String)

将camelCase字符串转换为小写,并将n-dashes作为分隔符插入。例如,lowercaseAndDash(MyExampleName)退货my-example-name

regularExpression(String, Pattern, Replacement)

根据指定的模式在字符串中进行替换。

methodName()

返回展开模板的方法的名称。

methodParameters()

返回展开模板的方法的参数列表。

methodReturnType()

返回当前方法返回的值的类型(模板在其中展开)。

qualifiedClassName()

返回当前类的完全限定名称(扩展模板的名称)。

rightSideType()

使用右侧表达式的类型声明左侧变量。它在迭代组中用于生成单个模板,用于生成原始类型和泛型集合。

snakeCase(String)

将字符串转换为snake_case。例如,snakeCase(fooBar)退货foo_bar

spaceSeparated(String)

将字符串转换为小写并将空格作为分隔符插入。例如,spaceSeparated(fooBar)退货foo bar

spacesToUnderscores(sParameterWithSpaces)

用作为参数传递的字符串中的下划线替换空格。例如,spacesToUnderscores(foo bar)退货foo_bar

substringBefore(String,Delimiter)

删除指定分隔符后面的扩展名,并仅返回文件名。这是测试的文件名有帮助(例如,substringBefore($FileName$,".")返回component-testcomponent-test.js)。

subtypes(sType)

返回作为参数传递的类型的子类型。

suggestFirstVariableName(sFirstVariableName)

不建议true, false, this, super

suggestIndexName()

表明从最常用的索引变量的名称: ijk,等等(未在当前的范围中使用第一个)。

suggestVariableName()

根据引用变量命名规则的代码样式设置,根据变量类型及其初始化表达式建议变量的名称。
例如,如果它是一个在迭代中保存元素的变量,IntelliJ IDEA会考虑最合理的名称,并考虑要迭代的容器的名称。

time(sSystemTime)

以指定格式返回当前系统时间。

typeOfVariable(VAR)

返回作为参数传递的变量的类型。

underscoresToCamelCase(String)

用作为参数传递的字符串中的camelCase字母替换下划线。例如,underscoresToCamelCase(foo_bar)退货fooBar

underscoresToSpaces(sParameterWithUnderscores)

用作为参数传递的字符串中的空格替换下划线。例如,underscoresToSpaces(foo_bar)退货foo bar

user()

返回当前用户的名称。

variableOfType(<type>)

建议可以分配给作为参数传递的类型的所有变量,例如variableOfType("java.util.Vector")。如果传递空字符串("")作为参数,则函数会建议所有变量,而不管其类型如何。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值