我在查看了几个references和tutorials后,尝试为sublime text(3)创建插件。
作为一个简单的练习,我认为我创建了一个vbscript评论插件 - 它应该在所选文本的每一行的开头插入一个撇号。
到目前为止,我已经管理了迭代所选区域并将它们分成不同的行。但我很难找到每条线的起点。 (在我的代码中称为lineStart
)。
我认为需要变量才能找到插入撇号的确切位置。我怎么做到的?
import sublime, sublime_plugin
class AspCommentCommand(sublime_plugin.TextCommand):
def run(self, edit):
for selectedRegion in self.view.sel():
selection = self.view.substr(selectedRegion)
for line in selection.split('\n'):
lineStart = ?????
self.view.insert(edit, lineStart, "'")
更新
万岁。我设法迭代选定的行,并使用以下代码在每个行的开头插入一个撇号:
class AspAddCommentCommand(sublime_plugin.TextCommand):
def run(self, edit):
for selectedRegion in self.view.sel():
selectedLines = self.view.lines(selectedRegion)
adjustBy = 0
for line in selectedLines:
insertPoint = line.begin() + adjustBy
self.view.insert(edit, insertPoint, "'")
adjustBy += 1
但是在第一行插入撇号之后,我需要调整下一行的插入点以允许额外的撇号字符。
有没有更好的方法来解决这个问题?
答案 0 :(得分:1)
在Sublime Text 3插件中,您可以使用
获取已知行的开头self.view.text_point(line - 1, 0)
在文档中,它们是指row
而不是行。行表示从零开始的行号。