LiveTemperates是IntelliJ IDEA 里很棒的一個(gè)功能颖医,Android Studio基于IntelliJ IDEA也繼承了這一優(yōu)秀功能为障。使用LiveTemperates可以讓你碼代碼如風(fēng)领跛。
LiveTemperates的默認(rèn)使用方法是輸入模版縮寫代碼然后摁Tab鍵自動(dòng)生成對(duì)應(yīng)的代碼核蘸。有點(diǎn)像ZenCoding,比如:輸入sout然后摁Tab鍵就會(huì)輸出System.out.println();
下面讓我們看一下在androidStudio中如何查看已有的LiveTemperates
打開Setting輸入live找到LiveTemplates尝江,我們可以看到這里有許多預(yù)設(shè)好的模版涉波。常用代碼,注釋,日志輸出啤覆,括號(hào)等等非常實(shí)用的模版苍日。
下面稍微列出一些常用的LiveTemperates:
- 常用android代碼模版
模版代碼 | 對(duì)應(yīng)輸出代碼 | 描述 |
---|---|---|
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(); | 創(chuàng)建一個(gè)Toast |
- 常用日志輸出模版
模版代碼 | 對(duì)應(yīng)輸出代碼 | 描述 |
---|---|---|
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 |
好吧,上面的表格是我從設(shè)置里面抄出來的窗声,其實(shí)用很多相恃,鑒于貼代碼格式和高光效果很差,大家還是到設(shè)置里慢慢查看吧笨觅。
自定義LiveTemperate
很多時(shí)候預(yù)設(shè)的模版并不能滿足我們的需求拦耐,還好androidStudio可以讓我們方便的定義自己的Live Temperate,下面我們一步一步的定制一個(gè)自己的模版。
接下來我會(huì)定義一個(gè)輸入 /
輸出 /** */
并將光標(biāo)移動(dòng)到中間的模版见剩。因?yàn)槲业逆I盤沒有小鍵盤杀糯,所以這個(gè)模版對(duì)我來說非常實(shí)用。
- 新建一個(gè)TemperateGroup
在LiveTemperate的設(shè)置匯總點(diǎn)擊加號(hào)炮温,新建一個(gè)自定義的TemperateGroup用來存放自定義的模版火脉。
- 在新建的組內(nèi)新建一個(gè)模版,并輸入基本信息柒啤,包括縮寫倦挂,描述和模版內(nèi)容
- 下面讓我添加一個(gè)參數(shù),來使得光標(biāo)可以跳至我們寫注釋的地方担巩,LiveTemperate使用兩個(gè)$包圍的方法定義變量方援,像這樣$variable$
- 最后添加適用范圍(Context):點(diǎn)擊Define,我們選擇Java中的Declaration
這里再解釋一下context中java里的那幾項(xiàng)
- Statement --不詳
- Expression --不詳,看起來在String和comment之外到處都有效
- Declaration --不詳
- Comment --在注釋中可用
- String --在String中可用涛癌,也就是在" "中間
- Smart type completion --不詳
- Other --大概就是怎樣都沒有的時(shí)候選上吧
這里面具體如何官方文檔上也沒講清楚犯戏,我又參考了Oracle的The Java? Tutorials中關(guān)于Statement和Expression的定義也沒有找到答案,知道答案的同學(xué)蠻煩告知一下哈
One more thing
這個(gè)例子比較簡單拳话,沒有展示變量的用法先匪,其實(shí)LiveTemperate中有許多預(yù)置的function也可以作為變量的值。使用$包起來的文字會(huì)被視作變量弃衍,點(diǎn)擊Edit variables就可以對(duì)變量設(shè)置表達(dá)式呀非,默認(rèn)值,是否在變量有值時(shí)跳過的選項(xiàng)镜盯。
一些常用函數(shù) | 描述 |
---|---|
date() | 輸出日期 |
time() | 輸出時(shí)間 |
className() | 當(dāng)前類 |
clipboard() | 剪貼板內(nèi)容 |
user() | 獲取當(dāng)前用戶 |
還有好多岸裙,我也沒怎么試過,相信大家用這些函數(shù)還可以開發(fā)出許多有趣的玩法速缆。
福利:
Github上的一個(gè)項(xiàng)目降允,整理了許多有用的模版,可以直接導(dǎo)入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