IDEA配置類及方法注釋模版

一乱灵、類注釋

在IDEA中打開File-Settings瓦盛,在Settings中打開Editor-File and Code Templates律秃,在左邊的Files中選中Class拧烦。


如上圖佑刷,Class編輯框中莉擒,編寫如下代碼:

/**
 * @Author: ${user}
 * @createTime: ${YEAR}年${MONTH}月${DAY}日 ${HOUR}:${MINUTE}:${SECOND}
 * @version: ${version}
 * @Description: ${description}
 */

上述代碼生成效果如下:

/**
 * @Author: 
 * @createTime: 2022年04月05日 23:56:34
 * @version: 1.0
 * @Description:
 */
  • @Author: 作者,可以直接寫上瘫絮。也可以配置${user}涨冀,在創(chuàng)建類時會提示添加。
  • @Description: 類描述麦萤,可以直接寫上鹿鳖。也可以配置${description},在創(chuàng)建類時會提示添加壮莹。
  • @version: 版本翅帜,可以直接寫上。也可以配置${version}命满,在創(chuàng)建類時會提示添加涝滴。
  • @createTime:創(chuàng)建日期,可以如上寫法自定義格式胶台。

配置完成后歼疮,勾選Enable Live Templates

二诈唬、方法注釋

Settings中打開Editor-Live Templates韩脏,如下圖:

1 創(chuàng)建分組 Template Group

點擊 " + " 號,選擇Template Group铸磅,接著在彈出框中設置好這個組的名字赡矢,點擊確定杭朱,例如:myMethodTemplates

2 在分組里創(chuàng)建一個 Live Template 模版

選中上面我們剛剛創(chuàng)建的分組myMethodTemplates吹散,然后點擊 " + " 號痕檬,選擇Live Template

3 配置 Live Template 模版

接下來就是創(chuàng)建注釋模版了送浊。

**
 * @author: $user$ 
 * @createTime: $date$ $time$
 * @description: $description$
 $param$
 $return$
 */

上面配置的效果如下:

/**
     * @author:  
     * @createTime: 2022年04月06 12:00:00
     * @description: 
     * @param: name - [java.lang.String]
     * @param: age - [int]
     * @return: java.lang.String
     */
    public String test(String name ,int age){return "";}
3.1 配置Abbreviation Description

上圖中Abbreviation設置項 梦谜,是在我們要生成注釋時,選擇自己的某一個Live Template模版的快捷提示唁桩。

什么意思呢?

/x...
public void test(){}

如上荒澡,/ 意思是我們要加注釋与殃,開頭為啥是/后面再說。x 就是Abbreviation中設置的縮寫幅疼。我們在Template Group中可能還有其他的模版,例如:a 悴晰、b等逐工,我們可以根據(jù)這個來選擇使用不同的模版注釋。設置這個縮寫也會彈窗提示棕硫,就像代碼提示那樣。

重要提示:不要把Abbreviation設置成斜杠哈扮,因為這會導致注釋無法獲取方法參數(shù)。

設置成其他的字母或是符號都可以瘤泪,這個看個人喜好灶泵,最好不要設置成 *(星號),以防我們不需要模版時誤導入对途。

Description 是對模版的說明,或是說對這個Abbreviation縮寫的說明髓棋,防止我們寫代碼時和要寫的代碼提示沖突实檀。

3.2 配置Template text

這個就是配置生成的注釋的格式:

**
 * @author: $user$ 
 * @createTime: $date$ $time$
 * @description: $description$
 $param$
 $return$
 */

如上惶洲,開頭不要有/,因為會造成方法參數(shù)無法獲取膳犹,我們在方法上面生成注釋時恬吕,需要先寫斜杠,然后再輸入Abbreviation設置的模版縮寫须床,這時 IDEA 會提示這個模版铐料。

下面我們對模版進行說明:

例:@author: $user$ 
@author:這個是我們需要配置的項
$user$ :這個可以自己寫,也可以使用雙$符來標記變量豺旬,使用雙$符時钠惩,在我們配置 Edit variables 時,里面會顯示 user 項族阅。

例:$param$
$param$:這個前面沒有星號篓跛,是因為我們在后續(xù)配置 Edit variables 時,表達式里面已經(jīng)加上了坦刀,所以此處不加愧沟。

對于模版的格式中的各個項,我們可以根據(jù)自己需求去添加鲤遥。

3.3 配置Edit variables

我們點擊Edit variables后會彈出Edit variables變量配置框沐寺。

Name:Template text中的變量名,就是雙$符中間的變量盖奈。
Expression: 是變量如何獲取的表達式芽丹。
Default value: 是設置變量的默認值。
Skip if defined: 這一項需要勾選上卜朗。

接下來開始講比較重要的Expression 表達式拔第。IDEA內置了一些表達式,可以點擊Expression項后面的箭頭查看场钉。我們可以選擇IDEA提供的內置表達式,也可以自己寫groovyScript來達到自己想要的效果逛万,寫完之后復制粘貼進Expression中即可宇植,后面會講解如何寫groovyScript指郁。

接下來講解幾個常用的:

  • user() 會自動獲取系統(tǒng)名闲坎。
  • date("yyyy年MM月dd") date()獲取年月日的信息,通過傳入格式化方式的字符串來自定義日期格式项秉。
  • time("HH:mm:ss") 同date()函數(shù)娄蔼。
  • param return 這兩個需要寫groovyScript表達式岁诉,在下面再講唉侄。

groovyScript表達式

格式:groovyScript("[邏輯判斷代碼]",[獲取參數(shù)表達式(此處為IDEA內置)])

groovyScript(
"
def result=''; 
def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); 
for(i = 0; i < params.size(); i++) {
    result += '* @param: ' + params[i] + ((i < params.size() - 1) ? '\\n ' : '')
}; 
return result;
", methodParameters())

IDEA變量表達式使用了groovyScript属划,上述代碼是根據(jù)IDEA內置methodParameters()函數(shù)獲取的值重新處理的成想要的格式同眯。
methodParameters()函數(shù)獲取的值格式為:[name, age]须蜗。

上述代碼中:

  • ${_1}獲取方法參數(shù)明肮。${_1}也就是上述代碼末尾的methodParameters(),如果獲取參數(shù)表達式有兩個陷猫,可以通過${_2}獲取第二個的結果绣檬。
  • 然后通過for循環(huán)將多個參數(shù)分行娇未,形成多個@param。三目運算就是判斷是否還有參數(shù)搁凸,如果有就分行。

@param設置

下面提供幾種方法參數(shù)的格式:

  • 不帶參數(shù)類型嚼松,例如:@param: name
groovyScript(
    "def result=''; 
    def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); 
    for(i = 0; i < params.size(); i++) {
        result += '* @param: ' + params[i] + ((i < params.size() - 1) ? '\\n ' : '')
    }; 
    return result;"
, methodParameters())
  • 帶參數(shù)類型,全類名献酗,例如:@param: name - [java.lang.String]
groovyScript(
    "def result=''; 
    def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); 
    def paramTypes=\"${_2}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();  
    for(i = 0; i < params.size(); i++) {
        if(params[i].size() > 0){
            result += '* @param: ' + params[i] + ' - [' +  paramTypes[i] + ']' + ((i < params.size() - 1) ? '\\n ' : '')
        }else{
            result += '* @param: ' + params[i] + ' ' +  paramTypes[i] + ((i < params.size() - 1) ? '\\n ' : '')
        }
    }; 
    return result;"
, methodParameters(), methodParameterTypes())
  • 帶參數(shù)類型,僅類名,例如:@param: name - [String]
groovyScript(
    "def result=''; 
    def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); 
    def paramTypes=\"${_2}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); 
    for(i = 0; i < params.size(); i++) {
        def types = paramTypes[i].split('\\\\.').toList(); 
        if(params[i].size() > 0){
            result += '* @param: ' + params[i] + ' - [' + types[types.size()-1] + ']' + ((i < params.size() - 1) ? '\\n ' : '')
        }else{
            result += '* @param: ' + params[i] + ' ' + types[types.size()-1] + ((i < params.size() - 1) ? '\\n ' : '')
        }
    }; 
    return result;"
, methodParameters(), methodParameterTypes())

也可以根據(jù)自己的格式需求颜及,在groovyScript自行更改俏站。

@return配置

groovyScript("def returnType = \"${_1}\"; def result = '* @return: ' + returnType; return result;", methodReturnType());

關于date相關的肄扎,我們可以用IDEA內置的表達式犯祠,然后傳入自己的格式化規(guī)則字符串即可衡载。例如:date("yyyy年MM月dd") time("HH:mm:ss")月劈。

3.4 配置 Options

Options中的Expand with是快捷鍵的配置猜揪,默認是Tap鍵而姐。

3.5 配置模版應用范圍


圖中紅色方框處就是配置應用范圍的地方钧萍,在為配置前為 Define风瘦,在配置后為 Change万搔。點擊既可以配置瞬雹。

可以選擇Everwhere在每一個地方都應用酗捌,也可以選擇對應的哪一種語言或什么位置會出現(xiàn)Abbreviation縮寫彈窗提示胖缤。


寫在最后:

  • 如果文章中有錯誤或是表達不準確的地方草姻,歡迎大家評論中指正撩独,以便我完善综膀。
  • 我也會根據(jù)所學到新的知識不斷對文章進行更新剧劝。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谣妻,隨后出現(xiàn)的幾起案子蹋半,更是在濱河造成了極大的恐慌,老刑警劉巖捻爷,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異薪棒,居然都是意外死亡俐芯,警方通過查閱死者的電腦和手機吧史,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門贸营,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钞脂,“玉大人,你說我怎么就攤上這事阎毅∩鹊鳎” “怎么了狼钮?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長锦援。 經(jīng)常有香客問我,道長区岗,這世上最難降的妖魔是什么慈缔? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮赂韵,結果婚禮上祭示,老公的妹妹穿的比我還像新娘质涛。我一直安慰自己怒炸,他們只是感情好,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布灯蝴。 她就那樣靜靜地躺著穷躁,像睡著了一般问潭。 火紅的嫁衣襯著肌膚如雪狡忙。 梳的紋絲不亂的頭發(fā)上灾茁,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天禀挫,我揣著相機與錄音语婴,去河邊找鬼砰左。 笑死缠导,一個胖子當著我的面吹牛旗闽,可吹牛的內容都是我干的适室。 我是一名探鬼主播捣辆,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼忍些!你這毒婦竟也來了罢坝?” 一聲冷哼從身側響起搅窿,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤闹司,失蹤者是張志新(化名)和其女友劉穎游桩,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恩溅,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年奶稠,在試婚紗的時候發(fā)現(xiàn)自己被綠了锌订。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片画株。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜈项,死狀恐怖续挟,靈堂內的尸體忽然破棺而出诗祸,到底是詐尸還是另有隱情,我是刑警寧澤博个,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布盆佣,位于F島的核電站罪塔,受9級特大地震影響征堪,放射性物質發(fā)生泄漏关拒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一熟尉、第九天 我趴在偏房一處隱蔽的房頂上張望斤儿。 院中可真熱鬧往果,春花似錦陕贮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽峦甩。三九已至现喳,卻和暖如春嗦篱,著一層夾襖步出監(jiān)牢的瞬間灸促,已是汗流浹背浴栽。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工典鸡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留萝玷,地道東北人。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓蜓斧,卻偏偏與公主長得像挎春,于是被迫代替她去往敵國和親豆拨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內容