在開發過程中,我們新建乙個lua檔案,大多是複製貼上如下面一段的**:
local classname = class("classname")
function
classname:ctor
()end
return classname
然後修改classname 的名字。接下來給大家介紹一種偷懶的技巧,只需要回車敲一下這些都可以搞定,而且不需要改名字。
先申明大多是參考 [ide]用sublime text開發屬於自己的外掛程式luatemplate
新建外掛程式luatemplate
首先找到外掛程式目錄,選單中
osx:preferences->browse packages…
windows:preferences->browse packages…
新建乙個資料夾,命名為luatemplate 選擇tools->new plugin… 新建乙個.py檔案,儲存到luatemplate下
python
import sublime, sublime_plugin
class
examplecommand
(sublime_plugin.textcommand):
defrun
(self, edit):
self.view.insert(edit, 0, "hello, world!")
「examplecommand」就是我們執行命令的名字,以大駝峰式命名,實際的命令為」example」 按ctrl+~開啟st控制台,輸入
python
view.run_command("example")
這時候就會在當前頁面出現 hello, world! 這裡有sublime text編寫外掛程式的api接下來就分享一下我自己新建lua模板的例子。
python
import sublime, sublime_plugin
import time
import subprocess
import os
import codecs
import re
import getpass
process = none
file_head_template="""--[[
@filename: $
@date: $
@author: $
@description:
]]"""
new_class_template=file_head_template+"""
local $ = class("$")
function $:ctor()
end"""
new_layer_template=file_head_template+"""
local $ = class("$",baselayer)
function $:ctor()
$.super.ctor(self)
endfunction $:onenter()
endfunction $:onexit()
endreturn $
"""new_function_template="""
function $:$()
end"""
file_separtor = "/"
if sublime.platform() == "windows":
file_separtor = "\\"
defgetconfig
(config, key):
if os.path.exists(config):
f = codecs.open(config, "r", "utf-8")
while
true:
line=f.readline()
if line:
sps=line.split("=")
if sps[0].strip() == key:
return sps[1].strip().replace("\"","")
else:
break
defgeneratecode
(self, template):
file_name = self.view.file_name()
sp_start = file_name.rfind(file_separtor) + 1
sp_end = file_name.rfind(".")
author = getpass.getuser()#獲取使用者名稱
#段檔名
short_file_name = file_name[sp_start:sp_end]
code = template
code = code.replace("$", time.strftime("%y-%m-%d %x", time.localtime()))
code = code.replace("$", short_file_name)
code = code.replace("$", author)
return code
#ltnewclass新建乙個class模板
class
ltnewclasscommand
(sublime_plugin.textcommand):
defrun
(self, edit):
code = generatecode(self, new_class_template)
(row, col) = self.view.rowcol(self.view.sel()[0].begin())
self.view.insert(edit, self.view.text_point(row, col), code)
#ltnewlayer 新建乙個層的模板
class
ltnewlayercommand
(sublime_plugin.textcommand):
defrun
(self, edit):
code = generatecode(self,new_layer_template)
(row,col) = self.view.rowcol(self.view.sel()[0].begin())
self.view.insert(edit,self.view.text_point(row,col),code)
#ltnewfunction 新建乙個function的模板
class
ltnewfunctioncommand
(sublime_plugin.textcommand):
defrun
(self, edit):
code = generatecode(self,new_function_template)
(row,col) = self.view.rowcol(self.view.sel()[0].begin())
self.view.insert(edit,self.view.text_point(row,col),code)
快捷方式
在luatemplate 檔案下新建default.sublime-commands
[
, ,
]
這個是通過cmd+shift+p(windows:ctrl+shift+p)裡輸入命令來執行python**
試一下
--[[
@filename: testviewlogic
@date: 2015-08-28 08/28/15
@author: syw
@description:
]]local testviewlogic = class("testviewlogic")
function
testviewlogic:ctor
()end
return testviewlogic
是不是很方便啊? Sublime Text 3 自定義快捷鍵
由於慣用eclipse myeclipse的快捷鍵,故而將sublime text 3的部分快捷鍵或者無快捷鍵的部分操作進行自定義快捷鍵。操作方法 在選單欄選擇 preferences key blinding user 在出現的頁面中編輯自定義快捷鍵的內容。customize keys delet...
自定義 如何自定義協議
何為自定義協議,其實是相對標準協議來說的,這裡主要針對的是應用層協議 常見的標準的應用層協議如http ftp smtp等,如果我們在網路通訊的過程中不去使用這些標準協議,那就需要自定義協議,比如我們常用的rpc框架 dubbo,thrift 分布式快取 redis,memcached 等都是自定義...
自定義控制項 自定義鐘錶
private context mcontext 畫筆 private paint mpaint 控制項的寬 private int mwidth x方向的圓心座標 private int center 鐘錶的半徑 private int mradio 圓環的寬 private int stroke...