def testToWhitespaceLine(self):
        set_text(self.view, '\n  \n\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_word_end(self.view, r.b)
        self.assertEqual(pt, 5)
    def testToWordStart(self):
        set_text(self.view, '\nfoo\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_word_end(self.view, r.b)
        self.assertEqual(pt, 4)
    def testToPunctuationStart(self):
        set_text(self.view, '\n (foo)\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_word_end(self.view, r.b)
        self.assertEqual(pt, 3)
    def testToOneCharWord(self):
        set_text(self.view, ':a bar\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_word_end(self.view, r.b)
        self.assertEqual(pt, 1)
    def testToOneCharLineWithLeadingWhitespace(self):
        set_text(self.view, ':\n a\n\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_word_end(self.view, r.b)
        self.assertEqual(pt, 1)
    def testToEmptyLine(self):
        set_text(self.view, ':\n\n\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_word_end(self.view, r.b)
        self.assertEqual(pt, 1)
    def testToOneCharLine(self):
        set_text(self.view, 'foo\na\n\n')
        r = self.R((0, 1), (0, 1))
        add_sel(self.view, r)

        pt = next_word_end(self.view, r.b)
        self.assertEqual(pt, 3)
    def testToOneWordLineWithLeadingWhitespace(self):
        set_text(self.view, 'foo\n bar\nbaz')
        r = self.R((0, 1), (0, 1))
        add_sel(self.view, r)

        pt = next_word_end(self.view, r.b)
        self.assertEqual(pt, 3)
    def testToEofWithNewline(self):
        set_text(self.view, '\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_word_end(self.view, r.b)
        self.assertEqual(pt, 1)
Beispiel #10
0
    def testMove1ToEol(self):
        set_text(self.view, 'x\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = word_starts(self.view, r.b, internal=True, count=1)
        self.assertEqual(pt, 1)
    def testToOneWordLine(self):
        set_text(self.view, 'foo\nbar\nbaz')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_word_end(self.view, r.b)
        self.assertEqual(pt, 3)
Beispiel #12
0
    def testToWordStart(self):
        set_text(self.view, ':foo\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b)
        self.assertEqual(pt, 5)
Beispiel #13
0
    def testMove2ToEol(self):
        set_text(self.view, 'foo bar\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = big_word_starts(self.view, r.b, internal=True, count=2)
        self.assertEqual(pt, 7)
Beispiel #14
0
    def testToEmptyLine(self):
        set_text(self.view, ':\n\n\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b)
        self.assertEqual(pt, 2)
Beispiel #15
0
    def testToOneWordLineWithLeadingWhitespace(self):
        set_text(self.view, ':\n bar\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b)
        self.assertEqual(pt, 2)
Beispiel #16
0
    def testToWordStart(self):
        set_text(self.view, '(foo) bar\n')
        r = self.R((0, 1), (0, 1))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b)
        self.assertEqual(pt, 6)
Beispiel #17
0
    def testMove2ToLineWithLeadingWhiteSpaceFromWordStart(self):
        set_text(self.view, '(foo)\n\nbar\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = big_word_starts(self.view, r.b, internal=True, count=2)
        self.assertEqual(pt, 7)
Beispiel #18
0
    def testMove2ToWhitespacelineFollowedByLeadingWhitespaceFromWordStart(self):
        set_text(self.view, '(foo)\n  \n ccc\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = big_word_starts(self.view, r.b, internal=True, count=2)
        self.assertEqual(pt, 14)
Beispiel #19
0
    def testMove2ToWhitespaceline(self):
        set_text(self.view, '(foo)\n  \nccc\n')
        r = self.R((0, 1), (0, 1))
        add_sel(self.view, r)

        pt = big_word_starts(self.view, r.b, internal=True, count=2)
        self.assertEqual(pt, 12)
Beispiel #20
0
    def testMove2ToOneWordLineFromWord(self):
        set_text(self.view, '(foo)\nbar\nccc\n')
        r = self.R((0, 1), (0, 1))
        add_sel(self.view, r)

        pt = big_word_starts(self.view, r.b, internal=True, count=2)
        self.assertEqual(pt, 9)
Beispiel #21
0
    def testMove10(self):
        set_text(self.view, ''.join(('(foo) bar\n',) * 5))
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = big_word_starts(self.view, r.b, count=9)
        self.assertEqual(pt, 46)
Beispiel #22
0
    def testMove3AndSwallowLastNewlineChar(self):
        set_text(self.view, '\nfoo\n (bar)\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = big_word_starts(self.view, r.b, internal=True, count=3)
        self.assertEqual(pt, 12)
Beispiel #23
0
    def testMove1ToWhitespaceLine(self):
        set_text(self.view, '\n  \n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = big_word_starts(self.view, r.b, count=1, internal=True)
        self.assertEqual(pt, 1)
Beispiel #24
0
    def testMove2ToLineWithLeadingWhiteSpace(self):
        set_text(self.view, '\n (bar)')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = big_word_starts(self.view, r.b, count=2, internal=True)
        self.assertEqual(pt, 6)
Beispiel #25
0
    def testToWhitespaceLine(self):
        set_text(self.view, '\n  ')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b, internal=True)
        self.assertEqual(pt, 0)
Beispiel #26
0
    def testToPunctuationStart(self):
        set_text(self.view, '(foo) (bar)\n')
        r = self.R((0, 1), (0, 1))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b)
        self.assertEqual(pt, 6)
Beispiel #27
0
    def testToOneWordLineWithLeadingWhitespace(self):
        set_text(self.view, '\n bar')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b, internal=True)
        self.assertEqual(pt, 0)
    def testToEof(self):
        set_text(self.view, 'foo')
        r = self.R((0, 1), (0, 1))
        add_sel(self.view, r)

        pt = next_word_end(self.view, r.b)
        self.assertEqual(pt, 3)
Beispiel #29
0
    def testToWhitespaceLine(self):
        set_text(self.view, '(foo)\n  \n\n')
        r = self.R((0, 1), (0, 1))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b)
        self.assertEqual(pt, 6)
Beispiel #30
0
    def testToOneCharWord(self):
        set_text(self.view, '  a foo bar\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_word_start(self.view, r.b)
        self.assertEqual(pt, 2)
Beispiel #31
0
    def testMove2ToOneWordLineFromWordStart(self):
        set_text(self.view, 'foo\nbar\nccc\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = word_starts(self.view, r.b, internal=True, count=2)
        self.assertEqual(pt, 8)
Beispiel #32
0
    def testMove2ToEmptyLineFromWord(self):
        set_text(self.view, 'foo\n\nbar\n')
        r = self.R((0, 1), (0, 1))
        add_sel(self.view, r)

        pt = word_starts(self.view, r.b, internal=True, count=2)
        self.assertEqual(pt, 4)
Beispiel #33
0
    def testMove2ToLineWithLeadingWhiteSpace(self):
        set_text(self.view, '\nfoo\n  \n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = word_starts(self.view, r.b, internal=True, count=2)
        self.assertEqual(pt, 5)
Beispiel #34
0
    def testMove2(self):
        set_text(self.view, '(foo) bar fizz\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = big_word_starts(self.view, r.b, count=2)
        self.assertEqual(pt, 10)
Beispiel #35
0
    def testMove1(self):
        set_text(self.view, '(foo) bar\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = big_word_starts(self.view, r.b)
        self.assertEqual(pt, 6)
Beispiel #36
0
    def testToOneCharWord(self):
        set_text(self.view, '::a bar\n')
        r = self.R((0, 1), (0, 1))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b)
        self.assertEqual(pt, 4)
Beispiel #37
0
    def testToOneCharLineWithLeadingWhitespace(self):
        set_text(self.view, '::\n a\n\n')
        r = self.R((0, 1), (0, 1))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b)
        self.assertEqual(pt, 3)
Beispiel #38
0
    def testToOneWordLine(self):
        set_text(self.view, '::\nbar\n')
        r = self.R((0, 1), (0, 1))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b)
        self.assertEqual(pt, 3)
Beispiel #39
0
    def testToEof(self):
        set_text(self.view, '::')
        r = self.R((0, 1), (0, 1))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b)
        self.assertEqual(pt, 2)
Beispiel #40
0
    def testToOneCharLine(self):
        set_text(self.view, '\na\n\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b)
        self.assertEqual(pt, 1)
Beispiel #41
0
    def testToEofWithNewline(self):
        set_text(self.view, '\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = next_big_word_start(self.view, r.b)
        self.assertEqual(pt, 1)
Beispiel #42
0
    def testCaretEndsInExpectedRegion(self):
        set_text(self.view, ''.join(('foo bar\nfoo bar\nfoo bar\n', )))
        add_sel(self.view, self.R((1, 3), (1, 0)))

        VintageState(self.view).mode = MODE_VISUAL

        self.view.run_command('vi_enter_normal_mode', {})
        self.assertEqual(self.R((1, 0), (1, 0)), first_sel(self.view))
Beispiel #43
0
    def testMove2ToWhitespacelineFollowedByLeadingWhitespaceFromWordStart(
            self):
        set_text(self.view, '(foo)\n  \n ccc\n')
        r = self.R((0, 0), (0, 0))
        add_sel(self.view, r)

        pt = big_word_starts(self.view, r.b, internal=True, count=2)
        self.assertEqual(pt, 14)
Beispiel #44
0
    def testDeletesWholeLine(self):
        set_text(self.view, ''.join(('foo bar\nfoo bar\nfoo bar\n', )))
        add_sel(self.view, self.R((1, 0), (1, 7)))

        self.view.run_command('_vi_big_s_action',
                              {'mode': _MODE_INTERNAL_NORMAL})
        self.assertEqual(self.view.substr(self.R(0, self.view.size())),
                         'foo bar\n\nfoo bar\n')
Beispiel #45
0
    def testMoveOne(self):
        set_text(self.view, 'foo\nbar\nbaz\n')
        add_sel(self.view, self.R((1, 1), (1, 2)))

        self.view.run_command('_vi_k', {'mode': MODE_VISUAL, 'count': 1, 'xpos': 2})

        expected = self.R((1, 2), (0, 2))
        self.assertEqual(expected, first_sel(self.view))
Beispiel #46
0
    def testMoveOppositeEndGreaterWithSelOfSize1(self):
        set_text(self.view, 'foo\nbar\nbaz\n')
        add_sel(self.view, self.R((2, 1), (2, 2)))

        self.view.run_command('_vi_k', {'mode': MODE_VISUAL, 'count': 1, 'xpos': 2})

        expected = self.R((2, 2), (1, 2))
        self.assertEqual(expected, first_sel(self.view))
Beispiel #47
0
    def testKeepsLeadingWhitespace(self):
        set_text(self.view, ''.join(('foo bar\n\t  foo bar\nfoo bar\n', )))
        add_sel(self.view, self.R((1, 0), (1, 10)))

        self.view.run_command('_vi_big_s_action',
                              {'mode': _MODE_INTERNAL_NORMAL})
        self.assertEqual(self.view.substr(self.R(0, self.view.size())),
                         'foo bar\n\t  \nfoo bar\n')
Beispiel #48
0
    def testMoveFromEmptyLineToEmptyLine(self):
        set_text(self.view, '\n\n\n')
        add_sel(self.view, self.R((1, 0), (1, 0)))

        self.view.run_command('_vi_k', {'mode': MODE_NORMAL, 'count': 1, 'xpos': 0})

        expected = self.R((0, 0), (0, 0))
        self.assertEqual(expected, first_sel(self.view))
Beispiel #49
0
    def testMoveMany(self):
        set_text(self.view, 'abc\nabc\nabc')
        add_sel(self.view, self.R(2, 1), (2, 1))

        self.view.run_command('_vi_k', {'mode': MODE_NORMAL, 'count': 2, 'xpos': 1})

        expected = self.R((0, 1), (0, 1))
        self.assertEqual(expected, first_sel(self.view))
Beispiel #50
0
    def testMoveOntoShorterLine(self):
        set_text(self.view, 'foo\nfoo bar')
        add_sel(self.view, self.R((1, 5), (1, 5)))

        self.view.run_command('_vi_k', {'mode': MODE_NORMAL, 'count': 1, 'xpos': 5})

        expected = self.R((0, 2), (0, 2))
        self.assertEqual(expected, first_sel(self.view))
Beispiel #51
0
    def testMoveTooFar(self):
        set_text(self.view, 'foo\nbar\nbaz\n')
        add_sel(self.view, self.R((2, 1), (2, 1)))

        self.view.run_command('_vi_k', {'mode': MODE_NORMAL, 'count': 100, 'xpos': 1})

        expected = self.R((0, 1), (0, 1))
        self.assertEqual(expected, first_sel(self.view))
Beispiel #52
0
    def testMoveBackToSameLine_OppositeEndHasGreaterXpos(self):
        set_text(self.view, 'foo\nbar\nbaz\n')
        add_sel(self.view, self.R((0, 2), (1, 0)))

        self.view.run_command('_vi_k', {'mode': MODE_VISUAL, 'count': 1, 'xpos': 0})

        expected = self.R((0, 3), (0, 0))
        self.assertEqual(expected, first_sel(self.view))
Beispiel #53
0
    def testMove_OppositeEndSmaller_DifferentLines_CrossOver_XposAt0(self):
        set_text(self.view, 'foo\nbar\nbaz\n')
        add_sel(self.view, self.R((1, 0), (2, 1)))

        self.view.run_command('_vi_k', {'mode': MODE_VISUAL, 'count': 2, 'xpos': 0})

        expected = self.R((1, 1), (0, 0))
        self.assertEqual(expected, first_sel(self.view))
Beispiel #54
0
    def testMove_OppositeEndSmaller_DifferentLines_CrossOver_Non0Xpos(self):
        set_text(self.view, 'foo bar\nfoo bar\nfoo bar\n')
        add_sel(self.view, self.R((1, 4), (2, 4)))

        self.view.run_command('_vi_k', {'mode': MODE_VISUAL, 'count': 2, 'xpos': 4})

        expected = self.R((1, 5), (0, 4))
        self.assertEqual(expected, first_sel(self.view))
Beispiel #55
0
    def testMoveMany_OppositeEndGreater_DifferentLines(self):
        set_text(self.view, ''.join(('foo\n',) * 50))
        add_sel(self.view, self.R((21, 2), (20, 1)))

        self.view.run_command('_vi_k', {'mode': MODE_VISUAL, 'count': 10, 'xpos': 1})

        expected = self.R((21, 2), (10, 1))
        self.assertEqual(expected, first_sel(self.view))
Beispiel #56
0
    def testMoveOppositeEndSmallerWithSelOfSize3(self):
        set_text(self.view, 'foobar\nbarfoo\nbuzzfizz\n')
        add_sel(self.view, self.R((1, 1), (1, 4)))

        self.view.run_command('_vi_k', {'mode': MODE_VISUAL, 'count': 1, 'xpos': 3})

        expected = self.R((1, 2), (0, 3))
        self.assertEqual(expected, first_sel(self.view))
Beispiel #57
0
    def testCanMoveInModeVisualLine(self):
        set_text(self.view, 'abc\nabc\n')
        add_sel(self.view, a=0, b=4)

        self.view.run_command('_vi_big_g', {
            'mode': MODE_VISUAL_LINE,
            'count': 1
        })
        self.assertEqual(self.R(0, 8), first_sel(self.view))
    def testCanMoveInInternalNormalModeWithCount(self):
        set_text(self.view, 'abc\nabc\nabc\nabc\n')
        add_sel(self.view, a=0, b=0)

        self.view.run_command('_vi_dollar', {
            'mode': _MODE_INTERNAL_NORMAL,
            'count': 3
        })
        self.assertEqual(self.R(0, 12), first_sel(self.view))
Beispiel #59
0
    def testCanMoveInModeInternalNormal(self):
        set_text(self.view, 'abc\nabc\n')
        add_sel(self.view, a=0, b=0)

        self.view.run_command('_vi_big_g', {
            'mode': _MODE_INTERNAL_NORMAL,
            'count': 1
        })
        self.assertEqual(self.R(0, 8), first_sel(self.view))
    def testCanMoveInVisualLineModeWithCount(self):
        set_text(self.view, 'abc\nabc\nabc\nabc\n')
        add_sel(self.view, a=0, b=4)

        self.view.run_command('_vi_dollar', {
            'mode': MODE_VISUAL_LINE,
            'count': 3
        })
        self.assertEqual(self.R(0, 12), first_sel(self.view))