Skip to content

Commit de9b65b

Browse files
committed
Merged Pull Request sublimehq#97 from misfo. sublimehq#97
1 parent 04c224c commit de9b65b

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

Default.sublime-keymap

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,11 @@
421421
"context": [{"key": "setting.command_mode"}]
422422
},
423423

424+
{
425+
"keys": ["g", "v"], "command": "select_last_visual_mode_selection",
426+
"context": [{"key": "setting.command_mode"}]
427+
},
428+
424429
{ "keys": [">"], "command": "set_action", "args": {"action": "vi_indent", "description": "Indent"},
425430
"context": [{"key": "setting.command_mode"}]
426431
},

vintage.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,36 @@ def shrink(self, r):
722722
def run(self, edit):
723723
transform_selection_regions(self.view, self.shrink)
724724

725+
class SelectLastVisualModeSelection(sublime_plugin.TextCommand):
726+
def run(self, edit):
727+
if self.view.has_non_empty_selection_region():
728+
new_sel = self.view.get_regions('vintage_last_visual_selection_exited')
729+
self.view.add_regions('vintage_last_visual_selection_exited',
730+
self.view.get_regions('vintage_last_visual_selection'),
731+
'')
732+
else:
733+
new_sel = self.view.get_regions('vintage_last_visual_selection')
734+
735+
if new_sel:
736+
sel = self.view.sel()
737+
sel.clear()
738+
for r in new_sel:
739+
sel.add(r)
740+
741+
class VisualModeSelectionTracker(sublime_plugin.EventListener):
742+
def on_selection_modified(self, view):
743+
if view.has_non_empty_selection_region():
744+
view.add_regions('vintage_last_visual_selection',
745+
[s for s in view.sel()],
746+
'')
747+
view.settings().set('vintage_visual_mode', True)
748+
elif view.settings().get('vintage_visual_mode'):
749+
view.add_regions('vintage_last_visual_selection_exited',
750+
view.get_regions('vintage_last_visual_selection'),
751+
'')
752+
view.settings().set('vintage_visual_mode', False)
753+
754+
725755
class ShrinkSelectionsToBeginning(sublime_plugin.TextCommand):
726756
def shrink(self, r):
727757
return sublime.Region(r.begin())

0 commit comments

Comments
 (0)