sublime自定義補全關鍵字 匯出工具
阿新 • • 發佈:2019-01-08
sublime是指令碼開發編輯器中比較方便的,我做Lua開發也是用sublime來做編輯器的。
sublime的自動補全功能也還行, 但是對於全域性的函式不會自動輸出,那麼是否可以設定自動補全的關鍵字呢?
我在網上找了很久沒有找到,沒有找到解決的辦法, 只找到了Snippets(程式碼片段)功能。
Snippets具體用法可以參考一下:
新建一個Snippets
儲存在sublime配置的路徑\User\LogDebug.sublime-snippet
之後開啟一個lua檔案,輸入ld,ok可以了
不過Snippets一次只能配一個, 要配置多個關鍵字有些麻煩,所以我開發了這個軟體, 用lua寫的,只需要填寫關鍵字及對應縮寫詞就ok,直接按批處理批量匯出Snippets檔案。
先看下程式碼
我們只需要改一下sublime配置的路徑
local PROGRAM_LOG_PATH = "C:\\Users\\使用者名稱\\AppData\\Roaming\\Sublime Text 3\\Packages\\User\\"
以及關鍵字配置 -- 配置關鍵詞 local sublimekey = {} table.insert(sublimekey, {key = "ld", content = "LogDebug", scope = "lua"}) table.insert(sublimekey, {key = "li", content = "LogInfo", scope = "lua"}) table.insert(sublimekey, {key = "lw", content = "LogWarning", scope = "lua"}) table.insert(sublimekey, {key = "le", content = "LogError", scope = "lua"}) table.insert(sublimekey, {key = "con", content = "console.log()", scope = "js"}) 這裡scope 欄位是要觸發的檔案型別,key為快捷縮寫,content為要輸出的關鍵字內容。
1 2 3 4 5 |
< snippet >
< content > <![CDATA[LogDebug]]> </ content >
< tabTrigger >ld</ tabTrigger >
< scope >source.lua</ scope >
</ snippet >
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
local PROGRAM_LOG_PATH = "C:\\Users\\使用者名稱\\AppData\\Roaming\\Sublime Text 3\\Packages\\User\\"
local SNIPPET_TEXT = "<snippet>\n\t<content><![CDATA[%s]]></content>\n\t<tabTrigger>%s</tabTrigger>\n\t<scope>source.%s</scope>\n</snippet>"
-- 配置關鍵詞 local sublimekey = {}
table.insert(sublimekey, {key = "ld" , content = "LogDebug" , scope = "lua" })
table.insert(sublimekey, {key = "li" , content = "LogInfo" , scope = "lua" })
table.insert(sublimekey, {key = "lw" , content = "LogWarning" , scope = "lua" })
table.insert(sublimekey, {key = "le" , content = "LogError" , scope = "lua" })
table.insert(sublimekey, {key = "con" , content = "console.log()" , scope = "js" })
for k,v in pairs(sublimekey) do
local config = sublimekey[k]
CreateLogFile(config.content, PROGRAM_LOG_PATH ,config.content.. ".sublime-snippet" , 0)
local msg1 = string.format(SNIPPET_TEXT, config.content, config.key, config.scope)
WriteLog(config.content, msg1)
CloseLogFile(config.content)
end
|
以及關鍵字配置 -- 配置關鍵詞 local sublimekey = {} table.insert(sublimekey, {key = "ld", content = "LogDebug", scope = "lua"}) table.insert(sublimekey, {key = "li", content = "LogInfo", scope = "lua"}) table.insert(sublimekey, {key = "lw", content = "LogWarning", scope = "lua"}) table.insert(sublimekey, {key = "le", content = "LogError", scope = "lua"}) table.insert(sublimekey, {key = "con", content = "console.log()", scope = "js"}) 這裡scope 欄位是要觸發的檔案型別,key為快捷縮寫,content為要輸出的關鍵字內容。
執行start.bat(需要安裝luaforwindows)執行,然後到sublime的配置目錄看下, 正常生成對應的sublime-snippet檔案就說明成功了。現在可以用sublime試一下自動補全的關鍵字了。。。。
另外配合sublime原有的外掛All AutoComplete使用,感覺挺方便的 。
PS:All AutoComplete 可以讓程式碼自動完成的匹配從所有開啟的檔案裡去匹配,而不是隻在當前檔案裡匹配。 所以用All AutoComplete開發某個特定模組已經可以基本滿足需求了。而我用工具導的介面則適用於全域性性的介面, 如上面寫的Log模組介面等等。。。。
from: http://www.oschina.net/question/160933_2146993