LiveTemperates是IntelliJ IDEA 里很棒的一个功能,Android Studio基于IntelliJ IDEA也继承了这一优秀功能。使用LiveTemperates可以让你码代码如风。
LiveTemperates的默认使用方法是输入模版缩写代码然后摁Tab键自动生成对应的代码。有点像ZenCoding,比如:输入sout然后摁Tab键就会输出System.out.println();
下面让我们看一下在androidStudio中如何查看已有的LiveTemperates
打开Setting输入live找到LiveTemplates,我们可以看到这里有许多预设好的模版。常用代码,注释,日志输出,括号等等非常实用的模版。
下面稍微列出一些常用的LiveTemperates:
- 常用android代码模版
模版代码 | 对应输出代码 | 描述 |
---|---|---|
const | private static final int $name$ = $value$; | 定义常量 |
fbc | ($cast$) findViewById(R.id.$resId$); | findViewById with cast |
Toast | Toast.makeText($className$.this, "$text$", Toast.LENGTH_SHORT).show(); | 创建一个Toast |
- 常用日志输出模版
模版代码 | 对应输出代码 | 描述 |
---|---|---|
logd | Log.d(TAG, "$METHOD_NAME$ $content$"); | Log.d |
loge | Log.e(TAG, "$METHOD_NAME$ $content$"); | Log.e |
logi | Log.i(TAG, "$METHOD_NAME$ $content$"); | Log.i |
好吧,上面的表格是我从设置里面抄出来的,其实用很多,鉴于贴代码格式和高光效果很差,大家还是到设置里慢慢查看吧。
自定义LiveTemperate
很多时候预设的模版并不能满足我们的需求,还好androidStudio可以让我们方便的定义自己的Live Temperate,下面我们一步一步的定制一个自己的模版。
接下来我会定义一个输入 /
输出 /** */
并将光标移动到中间的模版。因为我的键盘没有小键盘,所以这个模版对我来说非常实用。
- 新建一个TemperateGroup
在LiveTemperate的设置汇总点击加号,新建一个自定义的TemperateGroup用来存放自定义的模版。
- 在新建的组内新建一个模版,并输入基本信息,包括缩写,描述和模版内容
- 下面让我添加一个参数,来使得光标可以跳至我们写注释的地方,LiveTemperate使用两个$包围的方法定义变量,像这样$variable$
- 最后添加适用范围(Context):点击Define,我们选择Java中的Declaration
这里再解释一下context中java里的那几项
- Statement --不详
- Expression --不详,看起来在String和comment之外到处都有效
- Declaration --不详
- Comment --在注释中可用
- String --在String中可用,也就是在" "中间
- Smart type completion --不详
- Other --大概就是怎样都没有的时候选上吧
这里面具体如何官方文档上也没讲清楚,我又参考了Oracle的The Java™ Tutorials中关于Statement和Expression的定义也没有找到答案,知道答案的同学蛮烦告知一下哈
One more thing
这个例子比较简单,没有展示变量的用法,其实LiveTemperate中有许多预置的function也可以作为变量的值。使用$包起来的文字会被视作变量,点击Edit variables就可以对变量设置表达式,默认值,是否在变量有值时跳过的选项。
一些常用函数 | 描述 |
---|---|
date() | 输出日期 |
time() | 输出时间 |
className() | 当前类 |
clipboard() | 剪贴板内容 |
user() | 获取当前用户 |
还有好多,我也没怎么试过,相信大家用这些函数还可以开发出许多有趣的玩法。
福利:
Github上的一个项目,整理了许多有用的模版,可以直接导入AndroidStudio使用
https://github.com/keyboardsurfer/idea-live-templates
参考:
官方文档:https://www.jetbrains.com/idea/help/live-templates.html
变量文档:https://www.jetbrains.com/idea/help/edit-template-variables-dialog.html