編程小技巧之 IDEA的 Live Template

合格的程序員都善於使用工具,正所謂君子性非異也,善假於物也。程序員

使用自動化工具能夠減小本身的工做量,提升工做效率。平常編程過程當中,咱們常常須要編寫重複的代碼片斷,好比說編程

private static final Logger LOGGER = LoggerFactory.getLogger(HashServiceImpl.class);
複製代碼

每次編寫時都要鍵入不少鍵,有什麼方法能夠快速生成這段代碼呢?相似的,如何保存格式固定的經常使用代碼片斷,而後在須要時快速生成呢。IDEA 的 Live Template 是一個可行的途徑。bash

我也是最近才逐漸使用 IDEA 的 Live Template 功能,以前雖然知道這個功能,可是沒有養成使用的習慣。最近一段時間在不斷審視並反思本身的編程、工做和生活習慣,才發現其中有不少能夠優化精進的地方。微信

這也是《程序員修煉之道》中所說的 Think ! About Your Work 。函數

IDEA 是一個很強大的編程工具,學會使用它可以極大的提升工做效率,將精力投入到更關鍵的事情上,而不是將時間浪費在編寫重複代碼上面。工具

而做爲 Java 程序員,使人苦惱的地方是 Java 開發過程當中常常須要編寫有固定格式的代碼,例如說聲明一個私有變量,Logger 或者 Bean 等等。對於這種小範圍的代碼生成,咱們能夠利用 IDEA 提供的 Live Templates 功能。優化

Live Template 並非簡單的 Code Snippet,它甚至支持 Groovy函數配置,能夠編寫一些複雜的邏輯,支持很複雜的代碼生成。編碼

基本使用

IDEA 自帶不少經常使用的動態模板,都是你們日常編碼時的經常使用語句格式。好比說下面四張動圖中的語句。spa

四張圖分別是 聲明靜態 String 類型成員變量,判斷字符串爲空,for 循環和打印函數參數。.net

psfs

ifn

fori

soutp

自定義 Template

打開配置頁面,進入 Live Template 選項卡,咱們能夠看到 IDEA 預先設置的模板配置。這些模板都是最經常使用的一些語句,咱們先來看一下它們都是如何定義的。

縮寫就是 IDEA 識別的模板的別名,就像文章開頭展現的當你鍵入 soutm 時,IDEA 就會自動識別爲該模板。

而應用上下文則表示該模板在什麼上下文中生效。好比說上文中時一個 System.out 的語句,它只應該在 Java 的函數體中有效,因此它的應用上下文設置爲 Java: statement,在其餘類型文件或者 Java 文件的成員變量聲明位置都沒法使用該模板。

模板內容就是你按下 Tab 鍵以後,IDEA 自動生成的內容,它通常包含兩個部分,純文本和參數。參數能夠進行值綁定,還支持光標的自動跳轉。如同上文所示,$CLASS_NAME$$METHOD_NAME$ 就是參數,而$END$是一個特殊的參數,它表示光標最後一個跳轉的位置。

而參數設置就是設置這些參數的值,可使用 IDEA 提供的一些內置函數,還可使用強大的 Groovy 腳本。去 IDEA 的官網能夠查看這些函數的具體做用。

variables

咱們這裏講解一下 groovyScript("groovy code", arg1) 的使用。它能提供一切你想要的能力,它支持執行 Groovy 腳本處理輸入,而後輸出處理後的字符串

groovyScript("code", ...)

|  code   |   一段Groovy代碼或者Groovy腳本代碼絕對路徑    |
|  ...    |   可選入參,這些參數會綁定到`_1, _2, _3, ..._n`, 在 Groovy 代碼中使用。|
複製代碼

好比以前打印函數參數的模板是這樣定義的。

groovyScript("'\"' + _1.collect { it + ' = [\" + ' + it + ' + \"]'}.join(', ') + '\"'", methodParameters())
複製代碼

methodParameters 是 IDEA 內置的函數,它返回的結果做爲參數輸入到 Groovy 的腳本中,生成打印參數函數的字符串。

後記

感謝你們的閱讀,但願你們繼續關注,也能夠留言分享你最喜歡使用的編程工具和編程小技巧。

微信原文 博客原文

相關文章
相關標籤/搜索