Sublime Text Plugin - 如何获取特定行的起点?

时间:2015-01-19 22:41:52

标签: plugins sublimetext3 sublime-text-plugin

我在查看了几个referencestutorials后,尝试为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

但是在第一行插入撇号之后,我需要调整下一行的插入点以允许额外的撇号字符。

有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

在Sublime Text 3插件中,您可以使用

获取已知行的开头
self.view.text_point(line - 1, 0)

在文档中,它们是指row而不是行。行表示从零开始的行号。