IDEA擁有優(yōu)秀的代碼補全功能。除此之外,還擁有動態(tài)模板(Live Templete)和后綴補全(Postfix Completion)功能,讓編碼更簡單叽粹。
本篇文檔以Java為例览效,帶你領(lǐng)略后綴補全和動態(tài)模板的魅力。
后綴補全和動態(tài)模板
IDEA在2021年1月的版本上線了自定義后綴補全的功能虫几,在此之前锤灿,只能使用預(yù)定義好的補全模板。不過現(xiàn)在功能還不甚完善辆脸,一些小細(xì)節(jié)沒處理好但校,但是比起自定義動態(tài)模板,后綴補全更符合操作邏輯啡氢,也更方便状囱。
動態(tài)模板
動態(tài)模板即輸入一段縮寫,然后按下enter后會自動根據(jù)前后文生成對應(yīng)的代碼倘是,主要用于方法亭枷、類、表達(dá)語句內(nèi)搀崭。動態(tài)模板中的變量會根據(jù)定義叨粘,自動獲取上下文中的類名、方法名等,從而自動生成代碼升敲。
例如答倡,寫下sout
即可生成System.out.println();
。甚至可以通過配置動態(tài)模板自動生成Swagger注釋:https://blog.csdn.net/weixin_40596063/article/details/90897864
優(yōu)點
- 適合快速生成大段代碼驴党。
- 適合用在起始語句中瘪撇,如if、for鼻弧、main等设江。
缺點
- 不適合先寫變量,之后再補全的情況攘轩。這種情況就十分適合后綴補全叉存。
后綴補全
后綴補全是指在輸入變量或代碼串后,通過.
等方式度帮,按下tab/space/enter來快速生成代碼的方式歼捏。例如我們非常常見的"字符串".sout
就會生成代碼System.out.println("字符串");
。
自定義后綴補全
通過自定義笨篷,我們也可以擁有自己的后綴模板瞳秽。
以下以“輸入toMap
后補全代碼為.stream().collect(Collections.toMap());
”為例,設(shè)置一個自定義的后綴補全率翅。該例子能夠讓一個列表類型的變量轉(zhuǎn)換為一個Map练俐。
第一步
打開后綴補全設(shè)置(Editor | General | Postfix Completion),點擊加號新增一個Java后綴補全:
第二步
在key處設(shè)置后綴冕臭,支持語言最低版本具體選擇腺晾。因為本例中Stream接口是Java 8才支持,故我們選擇8版本辜贵。之后點擊加號悯蝉,設(shè)置要以哪種類型的變量作為后綴匹配的匹配變量。從上到下依次是:
- void
- 非void
- 布爾類型
- 數(shù)字類型
- 非基本類型(即除了基本類型包裝類外的對象)
- 數(shù)組(不包括List托慨、Set)
- 在項目中選取類
- 輸入類名(需要輸入全類名)
因為是列表類型的變量才使用該后綴鼻由,故這里我們填寫java.util.Collection
。
第三步
最后是輸入展開后的表達(dá)式厚棵。使用$EXPR$
來表示匹配的變量蕉世,使用$END$
來表示光標(biāo)結(jié)尾。
- 具體還有什么預(yù)定義變量婆硬,參見動態(tài)模板的文檔:https://www.jetbrains.com/help/idea/template-variables.html#pdtv
此處輸入
$EXPR$.stream().collect(java.util.Collections.toMap($END$));
注意讨彼,這里使用的類名要使用全類名,否則之后還需要手動import類柿祈。
完成
保存設(shè)置后哈误,便可以使用該后綴補全功能: