sublime text mac版實施輸入處理程式的技巧

ankych發表於2020-12-04

我們都知道sublime text for Mac是應用在Mac上的一款前端程式碼開發神器,它支援語法高亮、程式碼補全、程式碼片段(Snippet)、程式碼摺疊、行號顯示、自定義皮膚、配色方案等所有其它程式碼編輯器所擁有的功能的同時,又保證了其飛快的速度!下面Macz小編就為大家介紹一下sublime text mac版實施輸入處理程式的技巧!

sublime text for Mac(前端程式碼開發神器) 4.0(4094)漢化版

sublime text mac版實施輸入處理程式的技巧

由於輸入處理程式使用的是相當通用的介面,因此在命令中新增一個介面可能需要仔細考慮,並且可能不是最直觀的過程。
我們將實現一個示例輸入處理程式,並說明您可以針對高階配置進行調整的更多齒輪。

重要
要為命令使用輸入處理程式, 該命令必須在“ 命令皮膚”中具有一個條目。這很容易忘記,因此請務必記住!

讓我們從一個非常簡單的命令開始,該命令將給定的文字插入到檢視中。以下兩個檔案可以放在任何包資料夾中,包括“使用者”。 sublime text mac版實施輸入處理程式的技巧

該*Command.input方法
在執行命令時,它會接收其run方法的鍵控引數。如果簽名中的引數不提供預設值,則只有在為所有此類引數都提供了引數的情況下才能呼叫它。呼叫引數太少的命令將失敗,並導致將異常列印到控制檯。 sublime text mac版實施輸入處理程式的技巧

在這種情況下,命令可以實現該input方法 並返回輸入處理程式例項,該例項為Sublime Text提供了必要的資訊以顯示輸入處理程式。

sublime text mac版實施輸入處理程式的技巧

該input函式採用一個args引數,該引數是命令的所有當前已知引數的決定。由於我們知道此時僅text缺少必需的引數(),因此我們將不使用該引數。

我們尚未定義MyTextInputHandler,所以讓我們開始吧。

子類化 TextInputHandler

要為文字建立簡單的輸入處理程式,我們建立的子類。在子類中,我們可以覆蓋特定的方法。對於最基本的功能,我們需要。此外,為方便起見,我們定義。
當然,您仍然可以像以前一樣從按鍵繫結或透過控制檯呼叫命令。提供所有必需的引數後,將跳過輸入處理程式,並立即執行命令。 sublime text mac版實施輸入處理程式的技巧

渲染預覽
preview每次修改輸入的文字都會呼叫該方法,並允許在“命令皮膚”下方顯示一個小的預覽。預覽可以是純文字,也可以使用minihtml 作為啟用了標記的格式。

下面的程式碼片段擴充套件了我們的輸入處理程式,以顯示將要插入的字元數: sublime text mac版實施輸入處理程式的技巧

還有其他可以覆蓋的方法。這些在文件中進行了描述。

# 使用動態資料
您可能已經注意到,我們的MyTextInputHandler課程與我們的課程完全分開SampleCommand。如果我們希望輸入處理程式依賴於某些動態資料(例如當前檢視的選擇),則必須將此類值提供給輸入處理程式的建構函式。

以下程式碼片段將文字命令的View例項傳遞給輸入處理程式的建構函式。建構函式本身將例項儲存在instance屬性中,以後從中訪問它preview。

sublime text mac版實施輸入處理程式的技巧

提供選項列表 ListInputHandler
除了提供自由格式的輸入外,您還可以為使用者提供他們可以選擇的值列表。這是透過細分處理sublime_plugin.ListInputHandler 並提供一種list_items返回值列表以供選擇的方法來完成的。該列表可以是字串列表或元組列表,其中第一個元素表示要顯示的文字,第二個元素表示要插入的值作為命令的引數。 sublime text mac版實施輸入處理程式的技巧

請注意,我們name此處未實現,因為Sublime Text可以使用與命令名稱相同的邏輯,但透過剝離“ InputHandler”,從類名自動推斷出輸入處理程式的目標引數名稱。

提醒
請記住,您需要透過在.sublime-commands檔案中指定上述命令來使其對命令皮膚可用。 sublime text mac版實施輸入處理程式的技巧

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956340/viewspace-2739450/,如需轉載,請註明出處,否則將追究法律責任。

相關文章