在Android Studio 中添加自定義活動模版(Live templates)

原作者:Jovche Mitrejchevski
地址:http://mrw.so/5bWdIl
譯者:依然範特稀西

什麼是自定義活動模版?(注:很多文章翻譯成實時模版,我認爲活動模版更爲貼切,下文都將用活動模版->Live templates)在Android Studio 中,有一個概念,就是隻要需要輸入關鍵字,就可以在任何需要的地方將任何文本內容塊作爲模板插入,這就是活動模版,通過使用活動模版,我們可以將常用的一些構造插入代碼中。

Live templates 對我們有什麼幫助?

活動模版非常方便,可以提高我們編寫代碼的速度。隨着時間的推移,我們在項目中寫着很多相同或者相似的模版代碼,如:循環、條件控制、聲明,甚至整個類模板(例如RecyclerView.AdapterRecyclerView.ViewHolder等等)。一些人在進行直播編碼演示時廣泛使用活動模板。它節省了大量時間,並且消除了許多可能的錯誤。

如何新建一個活動模版

要配置活動模版,我們需要打開Android Studio 中的Live Templates 設置頁:Settings -> Editor -> Live Templates, 在實時模版頁,我們可以看見所有可用的活動模版,可以編輯它們,也可以創建新的活動模版。

3513995-7af0a02b9a6cb5ad.png

要定義新模版,在窗口的右側,點擊+ 按鈕,這裏有2個可選項:Live TemplateTemplate group

3513995-a43fec98814f99d0.png

繼續創建一個新的分組,並將它命名爲test,該分組將擁有用於編寫測試的活動模板,因此該名稱很應景。

下一步,我們選中新創建的分組test,然後點擊右邊的+按鈕,就可以爲這個分組中創建一個新的活動模版。

3513995-b66440af4cf7cc91.png

選擇此選項後,在窗口底部,我們可以看到活動模板編輯器

3513995-25600f98a6682f5a.png

這裏,首先我們必須設置abbreviation(縮寫), 縮寫類似於關鍵字,它將觸發模板在編輯器中的插入。我們還可以爲它設置一個簡潔貼切的描述。描述有何作用呢?例如,如果我們對不同的模板有類似的縮寫,則描述對於稍後在代碼中使用它們時,選擇正確的模板非常有幫助。在本示例中,我們以test作爲縮寫,以JUnit test function作爲描述。

接下來,我們將定義一個上下文,新模版將在該上下文中可用,在模版編輯器窗口底部,這裏有一個黃色警告⚠️No applicable context, 意思就是沒有可用的上下文

3513995-0866fe9db179f5a5.png

我們點擊Define 按鈕,來定義一個上下文

3513995-78b0944a5c25993e.png

可以看到,如上圖所示,我們選擇了Kotlin Class 作爲模版的上下文,也就意味着,這個模版在 Kotlin 類文件中可用。

接下來,讓我們繼續進行操作,爲給定的縮寫(也就是test)設置我們實際想要的模板。在編輯器的“Template text”輸入框中應用以下代碼:

@org.junit.jupiter.api.Test
fun $EXPR$() {
 org.junit.jupiter.api.Assertions.assertEquals($EXPR1$, $EXPR2$)
}

活動模板編輯器的右側還有其他設置選項,但我們暫時將其忽略。最後,編輯器的外觀如下:

3513995-c30d07fab850c0c1.png
image.png

接下來,我們要做的就是保存並完成。這裏解釋一下我們應用的實際模版代碼:Test類和assertEquals()方法使用完全限定的名稱

 org.junit.jupiter.api.Test
 org.junit.jupiter.api.Assertions.assertEquals

當我們在編輯器中使用此模板時,Android Studio將自動導入並補全代碼。

讓我們來看看它是什麼樣子,打開一個任意Kotlin class 文件(因爲我們設置的上下文是 Kotlin class 文件),在類體中,輸入相應的模版縮寫:test

3513995-a0d86702f5ec92bd.png

正如我們看到的,Android Studio 彈出了一個小窗口,我們可以選擇其中的可用模版,因爲我已經爲JUnit4測試功能預先設置了一個活動模板,所以我可以看到兩個可用的選項,也可以選擇我想使用的選項。

只需按⏎(Enter)或⇥(Tab),Android Studio就會在編輯器中插入所選模板,並將光標置於模板的第一個$ EXPR $變量(在本例中爲函數名)。

3513995-9b8f96602ac993e0.png

請務必注意,當光標在特定的$ EXPR $變量上鍵入內容時,鍵入的文本將以相同的名稱出現在所有變量中。在我們的示例中,我們總共有三個變量,在每一個變量後面加了一個數字來區別:$ EXPR $$ EXPR1 $$ EXPR2 $。實際上,數字不用作下一個/上一個跳轉的順序,而是隻是用來區分它們。

分享一些活動模版

最近,我發現了一個開源項目叫AndroidLiveTemplateshttps://github.com/pranaypatel512/AndroidLiveTemplates ,它提供了一堆很酷很實用的活動模版,如果你有不錯的活動模版,該庫也歡迎提交PR。

以上就是文章的所有內容,希望它對你有用!

3513995-7f23ff048c74ca0a.png
公衆號.png
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章