コード例 #1
0
 def run(self, edit, line_range=None):
     if not line_range['text_range']:
         # No-op: user issued ":".
         return
     ranges, _ = ex_range.new_calculate_range(self.view, line_range)
     a, b = ranges[0]
     # FIXME: This should be handled by the parser.
     # FIXME: In Vim, 0 seems to equal 1 in ranges.
     b = b if line_range['text_range'] != '0' else 1
     state = State(self.view)
     # FIXME: In Visual mode, goto line does some weird stuff.
     if state.mode == MODE_NORMAL:
         # TODO: push all this code down to ViGoToLine?
         self.view.window().run_command('_vi_add_to_jump_list')
         self.view.run_command('_vi_go_to_line', {
             'line': b,
             'mode': state.mode
         })
         self.view.window().run_command('_vi_add_to_jump_list')
         self.view.show(self.view.sel()[0])
     elif state.mode in (MODE_VISUAL,
                         MODE_VISUAL_LINE) and line_range['right_offset']:
         # TODO: push all this code down to ViGoToLine?
         self.view.window().run_command('_vi_add_to_jump_list')
         # FIXME: The parser fails with '<,'>100. 100 is not the right_offset, but an argument.
         b = self.view.rowcol(self.view.sel()[0].b -
                              1)[0] + line_range['right_offset'] + 1
         self.view.run_command('_vi_go_to_line', {
             'line': b,
             'mode': state.mode
         })
         self.view.window().run_command('_vi_add_to_jump_list')
         self.view.show(self.view.sel()[0])
コード例 #2
0
ファイル: ex_commands.py プロジェクト: klorenz/Vintageous
 def run(self, edit, line_range=None):
     if not line_range['text_range']:
         # No-op: user issued ":".
         return
     ranges, _ = ex_range.new_calculate_range(self.view, line_range)
     a, b = ranges[0]
     # FIXME: This should be handled by the parser.
     # FIXME: In Vim, 0 seems to equal 1 in ranges.
     b = b if line_range['text_range'] != '0' else 1
     state = VintageState(self.view)
     # FIXME: In Visual mode, goto line does some weird stuff.
     if state.mode == MODE_NORMAL:
         # TODO: push all this code down to ViGoToLine?
         self.view.window().run_command('vi_add_to_jump_list')
         self.view.run_command('vi_go_to_line', {'line': b, 'mode': MODE_NORMAL})
         self.view.window().run_command('vi_add_to_jump_list')
         self.view.show(self.view.sel()[0])
     elif state.mode in (MODE_VISUAL, MODE_VISUAL_LINE) and line_range['right_offset']:
         # TODO: push all this code down to ViGoToLine?
         self.view.run_command('vi_enter_normal_mode')
         self.view.window().run_command('vi_add_to_jump_list')
         # FIXME: The parser fails with '<,'>100. 100 is not the right_offset, but an argument.
         b = self.view.rowcol(self.view.sel()[0].b - 1)[0] + line_range['right_offset'] + 1
         self.view.run_command('vi_go_to_line', {'line': b, 'mode': MODE_NORMAL})
         self.view.window().run_command('vi_add_to_jump_list')
         self.view.show(self.view.sel()[0])
         state.display_partial_command()
コード例 #3
0
 def run(self, edit, line_range=None):
     if not line_range['text_range']:
         # No-op: user issued ":".
         return
     ranges, _ = ex_range.new_calculate_range(self.view, line_range)
     a, b = ranges[0]
     self.view.run_command('vi_go_to_line', {'line': b})
     self.view.show(self.view.sel()[0])
コード例 #4
0
 def run(self, edit, line_range=None):
     if not line_range['text_range']:
         # No-op: user issued ":".
         return
     ranges, _ = ex_range.new_calculate_range(self.view, line_range)
     a, b = ranges[0]
     self.view.run_command('vi_go_to_line', {'line': b})
     self.view.show(self.view.sel()[0])
コード例 #5
0
ファイル: ex_commands.py プロジェクト: eugeneotto/Vintageous
 def run(self, edit, line_range=None):
     if not line_range['text_range']:
         # No-op: user issued ":".
         return
     ranges, _ = ex_range.new_calculate_range(self.view, line_range)
     a, b = ranges[0]
     state = VintageState(self.view)
     # FIXME: In Visual mode, goto line does some weird stuff.
     if state.mode == MODE_NORMAL:
         self.view.run_command('vi_go_to_line', {'line': b, 'mode': MODE_NORMAL})
         self.view.show(self.view.sel()[0])
コード例 #6
0
ファイル: test_range.py プロジェクト: belike81/Vintageous
    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)
コード例 #7
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)