def run(self, edit):
# check whether the lua files
suffix_setting = self.view.settings().get('syntax')
file_suffix = suffix_setting.split('.')[0]
if file_suffix[-3:].lower() != 'lua': return
# get lines of replacement
r = sublime.Region(0, self.view.size())
lines = []
for region in self.view.lines(r):
cache = self.view.substr(region)
lines.append(cache)
# get cursor position before the replacement
selection = self.view.sel()[0].b
row, col = self.view.rowcol(selection)
# replace the content after format
print("Run Lua Format")
self.view.replace(edit, r, lua_format(lines, get_settings()))
# deal cursor position
selection = self.view.full_line(self.view.text_point(row - 1, 0)).b
cursor_pos = sublime.Region(selection, selection)
regions = self.view.sel()
regions.clear()
regions.add(cursor_pos)
sublime.set_timeout_async(lambda: self.view.show(cursor_pos), 0)
评论列表
文章目录