def run(self, edit): pos = cursor_pos(self.view) region = word_at(self.view, pos) if not region: return word = self.view.substr(region) all_regions = self.view.find_all(r'\b%s\b' % word) next_region = region_f(all_regions, region.end()) or first(all_regions) set_cursor(self.view, next_region.begin())
def run(self, edit): pos = cursor_pos(self.view) region = word_at(self.view, pos) if not region: return word = self.view.substr(region) all_regions = self.view.find_all(r'\b%s\b' % word) next_region = region_b(all_regions, region.begin() - 1) or last(all_regions) set_cursor(self.view, next_region.begin())
def run(self, edit): for pos in list_cursors(self.view): word1 = word_at(self.view, pos) word2 = word_b(self.view, word1.begin()) swap_regions(self.view, edit, word2, word1)
def run(self, edit): # We go from right to left to correctly handle overlapping regions for pos in reversed(list_cursors(self.view)): word1 = word_at(self.view, pos) word2 = word_f(self.view, pos) swap_regions(self.view, edit, word1, word2)