Sublime Text自定義lua模板外掛程式

2021-07-04 22:05:19 字數 4149 閱讀 7359

在開發過程中,我們新建乙個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...