【发布时间】:2015-03-18 01:21:39
【问题描述】:
在查看了一些 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
但是在第一行插入撇号后,我需要调整下一行的插入点以允许额外的撇号字符。
有没有更好的方法来解决这个问题?
【问题讨论】:
-
如果您正在为 ST3 制作插件,您可能需要 this API 和 this reference of missing objects 而不是问题中链接的那个。
-
感谢您的链接。我不得不说我觉得这些文档有点难以理解......但至少现在我会看到正确的版本,这是朝着正确方向迈出的一步
-
如果您以相反的顺序遍历行,它会起作用吗?
-
是的,我只是想知道是否有一种更巧妙的方法可以采用,这样做似乎有点老套
标签: plugins sublimetext3 sublime-text-plugin