示例#1
0
 def run(self, edit, line_range=None):
     if not line_range['text_range']:
         # No-op: user issued ":".
         return
     a, b = ex_range.new_calculate_range(self.view, line_range)[0]
     self.view.run_command('vi_goto_line', {'repeat': b})
     self.view.show(self.view.sel()[0])
示例#2
0
 def run(self, edit, line_range=None):
     if not line_range['text_range']:
         # No-op: user issued ":".
         return
     a, b = ex_range.new_calculate_range(self.view, line_range)[0]
     self.view.run_command('vi_goto_line', {'repeat': b})
     self.view.show(self.view.sel()[0])
示例#3
0
def get_region_by_range(view, line_range=None, split_visual=False):
    # If GLOBAL_RANGES exists, the ExGlobal command has been run right before
    # the current command, and we know we must process these lines.
    # XXX move this further down into the range parsing?
    global GLOBAL_RANGES
    if GLOBAL_RANGES:
        rv = GLOBAL_RANGES[:]
        GLOBAL_RANGES = []
        return rv

    regions = []
    if line_range:
        regions, visual_regions = ex_range.new_calculate_range(view, line_range)
    lines = []
    for region in regions:
        a, b = region
        r = sublime.Region(view.text_point(a - 1, 0),
                           view.line(view.text_point(b - 1, 0)).end())
        if not visual_regions or split_visual:
            lines.extend(view.split_by_newlines(r))
        else:
            if view.substr(r)[-1] == "\n":
                if r.begin() != r.end():
                    r = sublime.Region(r.begin(), r.end() - 1)
            lines.append(r)

    return lines
    def testCalculateCorrectRange(self):
        values = (
            (new_calculate_range(g_test_view, '0'), [(0, 0)]),
            (new_calculate_range(g_test_view, '1'), [(1, 1)]),
            (new_calculate_range(g_test_view, '1,1'), [(1, 1)]),
            (new_calculate_range(g_test_view, '%,1'), [(1, 538)]),
            (new_calculate_range(g_test_view, '1,%'), [(1, 538)]),
            (new_calculate_range(g_test_view, '1+99,160-10'), [(100, 150)]),
            (new_calculate_range(g_test_view, '/THIRTY/+10,100'), [(40, 100)]),
        )

        select_line(g_test_view, 31)
        values += (
            (new_calculate_range(g_test_view, '10,/THIRTY/'), [(10, 31)]),
            (new_calculate_range(g_test_view, '10;/THIRTY/'), [(10, 30)]),
        )

        for actual, expected in values:
            self.assertEquals(actual, expected)
示例#5
0
    def testCalculateCorrectRange(self):
        values = (
            (new_calculate_range(g_test_view, '0'), [(0, 0)]),
            (new_calculate_range(g_test_view, '1'), [(1, 1)]),
            (new_calculate_range(g_test_view, '1,1'), [(1, 1)]),
            (new_calculate_range(g_test_view, '%,1'), [(1, 538)]),
            (new_calculate_range(g_test_view, '1,%'), [(1, 538)]),
            (new_calculate_range(g_test_view, '1+99,160-10'), [(100, 150)]),
            (new_calculate_range(g_test_view, '/THIRTY/+10,100'), [(40, 100)]),
        )

        select_line(g_test_view, 31)
        values += (
            (new_calculate_range(g_test_view, '10,/THIRTY/'), [(10, 31)]),
            (new_calculate_range(g_test_view, '10;/THIRTY/'), [(10, 30)]),
        )

        for actual, expected in values:
            self.assertEquals(actual, expected)
示例#6
0
def get_region_by_range(view, line_range=None, split_visual=False):
    # If GLOBAL_RANGES exists, the ExGlobal command has been run right before
    # the current command, and we know we must process these lines.
    # XXX move this further down into the range parsing?
    global GLOBAL_RANGES
    if GLOBAL_RANGES:
        rv = GLOBAL_RANGES[:]
        GLOBAL_RANGES = []
        return rv

    if line_range:
        regions = ex_range.new_calculate_range(view, line_range)
    lines = []
    for region in regions:
        a, b = region
        r = sublime.Region(view.text_point(a - 1, 0), view.full_line(view.text_point(b - 1, 0)).end())
        lines.extend(view.split_by_newlines(r))

    return lines
示例#7
0
def get_region_by_range(view, line_range=None, split_visual=False):
    # If GLOBAL_RANGES exists, the ExGlobal command has been run right before
    # the current command, and we know we must process these lines.
    # XXX move this further down into the range parsing?
    global GLOBAL_RANGES
    if GLOBAL_RANGES:
        rv = GLOBAL_RANGES[:]
        GLOBAL_RANGES = []
        return rv

    if line_range:
        regions = ex_range.new_calculate_range(view, line_range)
    lines = []
    for region in regions:
        a, b = region
        r = sublime.Region(view.text_point(a - 1, 0),
                           view.full_line(view.text_point(b - 1, 0)).end())
        lines.extend(view.split_by_newlines(r))

    return lines