使用Live Template 增加开发效率

简介:

## 背景

最近在开发一个新项目,在写新类的时候要加log对象:

private static final Logger log = LoggerFactory.getLogger(ExperienceController.class);

然后每次都忘,于是想看看有没有什么办法能简化这个流程,最后用了intellij 的live templates

## Live Template
关于live template的介绍参照这里这里, 它主要作用是能自定义一些代码片段的快捷方式,然后通过代码提示能快速的帮你生成代码。

它的配置地方和快捷键如下:
97f2a2ae8d9a6312.png

Intellij已经集成了一些快捷项了,比如

99805490cd713c04.png

这样你输入sy时候会提示:
d7975c1a27cae4fd.png

按下tab键后会生成:

95f9a599dca0b47c.png

光标会停留在$END$处的地方方便你编辑。

除此之外,live templates还支持定义一些变量和一些内置函数,具体可以参考上面的官方文档。

另外在写新的template时候要定义使用场景,即最下方的:
0920128a50939d4a.png

点击define会弹出一个对话框:
13a6ef5cb39b707b.png

你可以选择希望什么时候提示你的template。

实践

下面简单介绍一下我自己写的几个例子

第一个是生成log对象的例子:
786de1f6e266794a.png

输入后生成代码:
b10f055b33bb4c41.png

这里用到了一个变量供用户输入classname

第二个例子涉及两个变量,这个使用场景是自己写了个处理response的类,对每个需要返回reponse的地方都要调用它:
2177068d2edb04bb.png

输入comrepn后生成代码:
2e5f1f3690146b93.png

输入第一个变量后光标自动跳到第二个变量处:
140c72258947febf.png

最后一个例子涉及变量之间的函数。这里的场景是jackson把一个类转换成一个json时候需要自定义那个key,由于json里我用的是下划线的,java里又是camel的,所以我希望只需要编辑一个地方自动生成另一个地方。先看一下定义的template.
69d7ef58f1d9228b.png

点击右边的edit variables:
726bdf83d8f6a93b.png

所以这边的逻辑就是输入NAME时候会自动生成ToCamelCase的变量名,完了以后再输入type。
效果如下:
e488613fa957dd1a.png

9f1df582e43f11b5.png

在输入jsonproperty的时候下面变量名会跟着变,直到输入回车会跳到输入类型的地方。

总的来说live template能让你编写代码幸福感上升好几层,值得大家拥有!

目录
相关文章
Idea:通过Live Template自定义模板(类注释、方法注释)
Idea:通过Live Template自定义模板(类注释、方法注释)
1063 0
Idea:通过Live Template自定义模板(类注释、方法注释)
|
Java Android开发
Android Studio live template巧用动态模板也能大大提高你的开发效率
Android Studio live template巧用动态模板也能大大提高你的开发效率
130 0
Android Studio live template巧用动态模板也能大大提高你的开发效率
IDEA自定义快捷键生成代码块(Live Template的使用)
IDEA自定义快捷键生成代码块(Live Template的使用)
IDEA自定义快捷键生成代码块(Live Template的使用)
idea中live Template模板
idea中live Template模板
176 0
idea中live Template模板
idea设置live template代码模板
idea设置live template代码模板
168 0
idea设置live template代码模板
|
JavaScript 前端开发 容器
Idea的live template参数中的预定义功能
Predefined Functions to Use in Live Template Variables Item Description annotated("annotation qname") Creates a symbol of type with an annotation that resides at the specified location.
1996 0