利用live templates和File and Code Templates快速生成代码或注释以及解释它们的区别;解释模板变量和expression表达式的含义;解决csdn无法输出$$的问题。

大部分开发人员,不论是前端,还是后端,应该会使用jetbrains的编辑器,比如前端的web storm,后端的ideaGoland,其提供了快速生成代码和代码注释的工具,即live templatesFile and Code Templates

File and Code Templates

使用模板原因

我们希望在创建java文件时,便将开发者姓名、创建时间,类信息描述等便一起写入,此时,我们可以利用````File and Code Templates```帮我们做这件事。

如何使用模板

我的电脑是window系统,Windows可以如此来设置:File - > Settings -> Editor -> File and Code Templates,如图所示:
File and Code Templates截图

变量解释

就类似于${USER}这样的字段做如下解释:

字段含义
${PACKAGE_NAME}创建类所在的包名称
${NAME}你在弹出框中的类名称
${USER}用户系统登录名
${DATE}系统日期
${TIME}系统时间
${YEAR}本年
${MONTH}本月
${MONTH_NAME_SHORT}本月的前三个字母【针对英文月份】,比如Jan【一月】, Feb【二月】
${MONTH_NAME_FULL}本月的全名【针对英文月份】,比如January(一月), February(二月)等
${DAY}当天
${HOUR}本小时
${MINUTE}当前分钟
${PROJECT_NAME}本项目名称

生成代码

如上设置好File and Code Templates,于是区创建一个Test.java
创建类

新创建的Test.java代码,自动生成了作者名和当前时间,如下所示:

package com.example.demo.demo;

/**
 * @author zhangsan
 * @datetime 2022/7/20 17:41
 * @desc 这是一个测试类
 */
public class Test {
}

如果想要自动生成其他信息,可以参考表格中的字段,自行设置。

live templates

使用模板原因

我们在创建代码时,可以使用File and Code Templates帮我们自动生成注释,但我们有时想要自动生成类似如下的代码:

输入main 生成 public static void main(String[] args) { }

输入sout 生成  System.out.println();

输入fori 生成  for (int i = 0; i < ; i++) {}

...

此时,我们可以使用live templates,执行如下步骤,来制定某种规则,帮我们快速生成代码,如下图解释。

如何使用模板

创建模板组【template group】,比如我创建的是myTemplate

模板组

在模板组下创建模板【live template】

我想实现输入try,即可输出这样的代码:

 try{
         
 } catch (Exception e) {
      log.error("error",e);
}

因而,我们可以在live templates这样配置:
live templates

变量解释

字段含义
Abbreviation即你想要缩写的词,比如上文中的 try
Description描述当前缩写词的的意思,比如输入try,列出try-catch
Template text此处缩写模板,比如 try{$action$} catch (Exception e) {log.error(“error”,e);$end$ }

生成注释

当然,Template text旁边有个Edit variables按钮,改按钮是用来定义变量的,这是什么意思呢?

比如,我想要输入fun即可实现方法注释,因而,我可以这样设计:

/**
 * @author $user$ 
 * @datetime $date$:$time$
 * @desc
 */

此时,单击Edit variables,即出现下图的弹出框:
在这里插入图片描述

弹出框Edit Template Variables的字段解释

字段含义
Name你所定义的变量名,比如 $user$
Expression变量对应的表达式,比如user()输出本电脑的用户名,date()输出当天日期
Default Value默认值,如果没有选择表达式,则会使用默认值输出
Skip if defined此复选框可让 IntelliJ IDEA 继续处理下一个输入字段,前提是定义了当前输入字段的值

Expression表达式的字段解释

字段含义
user()返回系统登录名
time()返回当前日期
annotated(“annotation qname”)创建带有指定位置注释的类型符号。
arrayvariable()建议适用于当前范围的所有数组变量。例如,在迭代组中查看活动模板。
anonymoussuper()提出一种科特林级对象表达类型。
сamelcase(字符串)返回作为参数传递的字符串,转换为骆驼格。例如,我的文本文件/我的文档/ my_text_file将转换为mytextfile。
capitalizeandunderscore(scamelcasename)利用CamelCase的名称作为参数传递的所有信件,并插入一个下划线之间的部分。例如,如果一个参数是要通过字符串,然后返回foo_bar。
casttoleftsidetype()将右侧表达式投射到左侧表达式类型。它在迭代组中使用一个模板来生成原始类型和泛型集合。
className(sclassname)返回当前类的名称(扩展模板的类)。
classnamecomplete()这个表达式替换变量位置上的类名完成。
clipboard()返回系统剪贴板的内容。
camelCase(字符串)返回字符串的字符串snake_case camelCase。例如,如果一个参数是foo_bar通过字符串,然后返回foobar。
complete()这个表达式替换了变量位置上的代码完成调用。
completesmart()该表达式替代变量位置上的智能类型完成调用。
componenttypeof(<数组变量或数组类型>)返回数组的组件类型。例如,在其他组中的迭代组中查看活动模板。
currentpackage()返回当前包名。
date()以指定格式返回当前系统日期。默认情况下,当前日期是以默认的系统格式返回
decapitalize(SNAME)用相应小写字母替换作为参数传递的名称的第一个字母。
descendantclassenum(<字符串>)显示类的子字符串作为参数输入。
enum(scompletionstring1,scompletionstring2,…)建议在模板调用中完成的逗号分隔字符串列表。
escapestring(sescapestring)转义指定字符串。
expectedtype()返回作为整个模板的结果所期望的类型。如果模板在赋值的右边,在返回之后扩展,则是有意义的。
fileName()以扩展名返回文件名。
filenamewithoutextension()返回没有扩展名的文件名。
firstWord(sfirstword)返回作为参数传递的字符串的第一个单词。
groovyscript(“Groovy代码”)用指定的代码返回Groovy脚本。你可以使用多个参数的groovyscript宏。第一个参数是执行的脚本文本或包含脚本的文件路径。接下来的参数绑定到_1,_2,_3,…_n变量都可以在你的脚本。同时,_editor变量可在脚本。此变量绑定到当前编辑器。
guesselementtype(<集装箱>)对存储在一个java.util.collection元素类型的猜测。猜想,IntelliJ IDEA试图找到地方的元素被添加到或从容器中提取。
iterablecomponenttype(< arrayoriterable >)返回一个组件类型,如数组或集合。
iterablevariable()返回可以重复的变量的名称。
linenumber()返回当前行号。
lowercaseanddash(字符串)返回以破折号分隔的小写字符串,作为参数传递的字符串。例如,字符串转换为我的名字MyExampleName。
methodname()返回拥抱方法的名称(在模板扩展的地方)。
methodparameters()返回方法(扩展模板)的参数列表。
methodreturntype()返回当前方法返回的值的类型(扩展模板的方法)。
qualifiedclassname()返回当前类的完全限定名称(扩展模板的类)。明显缩短FQ名称”复选框。
rightsidetype()用右侧表达式的类型声明左侧变量。它在迭代组中使用一个模板来生成原始类型和泛型集合。
snakecase(scamelcasetext)从CamelCase返回snake_case字符串字符串作为参数传递。

细节提醒

File and Code Templates和live templates变量区别

live templates的变量定义和File and Code Templates不一样,File and Code Templates是${variable_name}定义变量,而live templates使用 $variable_name$定义变量

解决csdn无法输出$$

在这里插入图片描述
如果这样输入$user$,csdn无法输出$符号,因而,我们需要使用转义字符,如图所示:
转义字符

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联网全栈开发实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值