def testMove2ToWhitespacelineFollowedByLeadingWhitespaceFromWordStart(self): set_text(self.view, 'foo\n \n ccc\n') r = self.R((0, 0), (0, 0)) add_selection(self.view, r) pt = word_starts(self.view, r.b, internal=True, count=2) self.assertEqual(pt, 12)
def testMove3AndSwallowLastNewlineChar(self): set_text(self.view, '\nfoo\n bar\n') r = self.R((0, 0), (0, 0)) add_selection(self.view, r) pt = word_starts(self.view, r.b, internal=True, count=3) self.assertEqual(pt, 10)
def testMove2ToOneWordLineFromWord(self): set_text(self.view, 'foo\nbar\nccc\n') r = self.R((0, 1), (0, 1)) add_selection(self.view, r) pt = word_starts(self.view, r.b, internal=True, count=2) self.assertEqual(pt, 7)
def testMove10(self): set_text(self.view, ''.join(('foo bar\n',) * 5)) r = self.R((0, 0), (0, 0)) add_selection(self.view, r) pt = word_starts(self.view, r.b, count=9) self.assertEqual(pt, 36)
def testMove1ToWhitespaceLine(self): set_text(self.view, '\n \n') r = self.R((0, 0), (0, 0)) add_selection(self.view, r) pt = word_starts(self.view, r.b, count=1, internal=True) self.assertEqual(pt, 1)
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)
def testMove1(self): set_text(self.view, 'foo bar\n') r = self.R((0, 0), (0, 0)) add_selection(self.view, r) pt = word_starts(self.view, r.b) self.assertEqual(pt, 4)
def testMove10(self): set_text(self.view, ''.join(('foo bar\n', ) * 5)) r = self.R((0, 0), (0, 0)) add_selection(self.view, r) pt = word_starts(self.view, r.b, count=9) self.assertEqual(pt, 36)
def testMove2ToLineWithLeadingWhiteSpace(self): set_text(self.view, '\n bar') r = self.R((0, 0), (0, 0)) add_selection(self.view, r) pt = word_starts(self.view, r.b, count=2, internal=True) self.assertEqual(pt, 6)
def testMove2(self): set_text(self.view, 'foo bar fizz\n') r = self.R((0, 0), (0, 0)) add_selection(self.view, r) pt = word_starts(self.view, r.b, count=2) self.assertEqual(pt, 8)
def testMove2ToEol(self): set_text(self.view, 'foo bar\n') r = self.R((0, 0), (0, 0)) add_selection(self.view, r) pt = word_starts(self.view, r.b, internal=True, count=2) self.assertEqual(pt, 7)
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 testMove2ToWhitespaceline(self): set_text(self.view, 'foo\n \nccc\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, 10)
def testMove1ToLineWithLeadingWhiteSpace(self): set_text(self.view, '\n bar\n') r = self.R((0, 0), (0, 0)) add_sel(self.view, r) pt = word_starts(self.view, r.b, internal=True) self.assertEqual(pt, 1)
def testMove2ToOneWordLine(self): set_text(self.view, '\nfoo\n') r = self.R((0, 0), (0, 0)) add_selection(self.view, r) pt = word_starts(self.view, r.b, internal=True, count=2) self.assertEqual(pt, 5)
def testMove2ToLineWithLeadingWhiteSpaceFromWordStart(self): set_text(self.view, 'foo\n\nbar\n') r = self.R((0, 0), (0, 0)) add_selection(self.view, r) pt = word_starts(self.view, r.b, internal=True, count=2) self.assertEqual(pt, 5)
def testMove2ToWhitespacelineFollowedByLeadingWhitespaceFromWord(self): set_text(self.view, 'foo\n \n ccc\n') r = self.R((0, 1), (0, 1)) add_selection(self.view, r) pt = word_starts(self.view, r.b, internal=True, count=2) self.assertEqual(pt, 11)
def testMove2ToWhitespaceline(self): set_text(self.view, 'foo\n \nccc\n') r = self.R((0, 1), (0, 1)) add_selection(self.view, r) pt = word_starts(self.view, r.b, internal=True, count=2) self.assertEqual(pt, 10)
def a_word(view, pt, inclusive=True, count=1): assert count > 0 start = current_word_start(view, pt) end = pt if inclusive: end = units.word_starts(view, start, count=count, internal=True) # Vim does some inconsistent stuff here... if count > 1 and view.substr(end) == '\n': end += 1 return sublime.Region(start, end) for x in range(count): end = current_word_end(view, end) return sublime.Region(start, end)
def a_word(view, pt, inclusive=True, count=1): assert count > 0 start = current_word_start(view, pt) end = pt if inclusive: end = units.word_starts(view, start, count=count, internal=True) # If there is no space at the end of our word text object, include any # preceding spaces. (Follows Vim behavior.) if (not view.substr(end - 1).isspace() and view.substr(start - 1).isspace()): start = utils.previous_non_white_space_char( view, start - 1, white_space=' \t') + 1 # Vim does some inconsistent stuff here... if count > 1 and view.substr(end) == '\n': end += 1 return sublime.Region(start, end) for x in range(count): end = current_word_end(view, end) return sublime.Region(start, end)