我們都知道sublime text for Mac是應(yīng)用在Mac上的一款前端代碼開發(fā)神器,它支持語法高亮、代碼補(bǔ)全、代碼片段(Snippet)、代碼折疊、行號(hào)顯示、自定義皮膚、配色方案等所有其它代碼編輯器所擁有的功能的同時(shí),又保證了其飛快的速度!下面Macz小編就為大家介紹一下sublime text mac版實(shí)施輸入處理程序的技巧!
sublime text for Mac(前端代碼開發(fā)神器) 4.0(4094)漢化版
sublime text mac版實(shí)施輸入處理程序的技巧
由于輸入處理程序使用的是相當(dāng)通用的界面,因此在命令中添加一個(gè)界面可能需要仔細(xì)考慮,并且可能不是最直觀的過程。
我們將實(shí)現(xiàn)一個(gè)示例輸入處理程序,并說明您可以針對(duì)高級(jí)配置進(jìn)行調(diào)整的更多齒輪。
重要
要為命令使用輸入處理程序, 該命令必須在“ 命令面板”中具有一個(gè)條目。這很容易忘記,因此請(qǐng)務(wù)必記住!
讓我們從一個(gè)非常簡(jiǎn)單的命令開始,該命令將給定的文本插入到視圖中。以下兩個(gè)文件可以放在任何包文件夾中,包括“用戶”。
該*Command.input方法
在執(zhí)行命令時(shí),它會(huì)接收其run方法的鍵控參數(shù)。如果簽名中的參數(shù)不提供默認(rèn)值,則只有在為所有此類參數(shù)都提供了參數(shù)的情況下才能調(diào)用它。調(diào)用參數(shù)太少的命令將失敗,并導(dǎo)致將異常打印到控制臺(tái)。
在這種情況下,命令可以實(shí)現(xiàn)該input方法 并返回輸入處理程序?qū)嵗?,該?shí)例為Sublime Text提供了必要的信息以顯示輸入處理程序。
該input函數(shù)采用一個(gè)args參數(shù),該參數(shù)是命令的所有當(dāng)前已知參數(shù)的決定。由于我們知道此時(shí)僅text缺少必需的參數(shù)(),因此我們將不使用該參數(shù)。
我們尚未定義MyTextInputHandler,所以讓我們開始吧。
子類化 TextInputHandler
要為文本創(chuàng)建簡(jiǎn)單的輸入處理程序,我們創(chuàng)建的子類。在子類中,我們可以覆蓋特定的方法。對(duì)于最基本的功能,我們需要。此外,為方便起見,我們定義。
當(dāng)然,您仍然可以像以前一樣從按鍵綁定或通過控制臺(tái)調(diào)用命令。提供所有必需的參數(shù)后,將跳過輸入處理程序,并立即運(yùn)行命令。
渲染預(yù)覽
preview每次修改輸入的文本都會(huì)調(diào)用該方法,并允許在“命令面板”下方顯示一個(gè)小的預(yù)覽。預(yù)覽可以是純文本,也可以使用minihtml 作為啟用了標(biāo)記的格式。
下面的代碼片段擴(kuò)展了我們的輸入處理程序,以顯示將要插入的字符數(shù):
還有其他可以覆蓋的方法。這些在文檔中進(jìn)行了描述。
# 使用動(dòng)態(tài)數(shù)據(jù)
您可能已經(jīng)注意到,我們的MyTextInputHandler課程與我們的課程完全分開SampleCommand。如果我們希望輸入處理程序依賴于某些動(dòng)態(tài)數(shù)據(jù)(例如當(dāng)前視圖的選擇),則必須將此類值提供給輸入處理程序的構(gòu)造函數(shù)。
以下代碼片段將文本命令的View實(shí)例傳遞給輸入處理程序的構(gòu)造函數(shù)。構(gòu)造函數(shù)本身將實(shí)例存儲(chǔ)在instance屬性中,以后從中訪問它preview。
提供選項(xiàng)列表 ListInputHandler
除了提供自由格式的輸入外,您還可以為用戶提供他們可以選擇的值列表。這是通過細(xì)分處理sublime_plugin.ListInputHandler 并提供一種list_items返回值列表以供選擇的方法來完成的。該列表可以是字符串列表或元組列表,其中第一個(gè)元素表示要顯示的文本,第二個(gè)元素表示要插入的值作為命令的參數(shù)。
請(qǐng)注意,我們name此處未實(shí)現(xiàn),因?yàn)镾ublime Text可以使用與命令名稱相同的邏輯,但通過剝離“ InputHandler”,從類名自動(dòng)推斷出輸入處理程序的目標(biāo)參數(shù)名稱。
提醒
請(qǐng)記住,您需要通過在.sublime-commands文件中指定上述命令來使其對(duì)命令面板可用。
責(zé)任編輯: