def run(self, edit, mode=None): def f(view, s): if mode in (modes.NORMAL, modes.INTERNAL_NORMAL): if (view.substr(s.b) == "\n" or s.b == view.size()) and not view.line(s.b).empty(): return sublime.Region(s.b - 1) return s regions_transformer(self.view, f)
def run(self, edit, mode=None): def f(view, s): if mode in (modes.NORMAL, modes.INTERNAL_NORMAL): if ((view.substr(s.b) == '\n' or s.b == view.size()) and not view.line(s.b).empty()): return sublime.Region(s.b - 1) return s regions_transformer(self.view, f)
def run(self, edit, mode=None, replace_what=''): def f(view, s): if mode == modes.INTERNAL_NORMAL: self.replace(edit, s, replace_what) return s return s if replace_what: regions_transformer(self.view, f)
def run(self, edit, mode=None): def f(view, s): if mode in (modes.NORMAL, modes.INTERNAL_NORMAL): if ((view.substr(s.b) == '\n' or s.b == view.size()) and not view.line(s.b).empty()): # print('adjusting carets') return sublime.Region(s.b - 1) return s regions_transformer(self.view, f)
def run(self, edit, mode=None, surround_with='"', count=1, motion=None): def f(view, s): if mode == modes.INTERNAL_NORMAL: self.surround(edit, s, surround_with) return sublime.Region(s.begin()) elif mode in (modes.VISUAL, modes.VISUAL_BLOCK): self.surround(edit, s, surround_with) return sublime.Region(s.begin()) return s if not motion and not self.view.has_non_empty_selection_region(): self.enter_normal_mode(mode) raise ValueError('motion required') if mode == modes.INTERNAL_NORMAL: self.view.run_command(motion['motion'], motion['motion_args']) if surround_with: regions_transformer(self.view, f) self.enter_normal_mode(mode)