Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Implements "close other views"
  • Loading branch information
titoBouzout committed Dec 4, 2018
1 parent 44d3f9b commit 69af47f
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 7 deletions.
16 changes: 11 additions & 5 deletions Side Bar.sublime-menu
Expand Up @@ -21,17 +21,23 @@
{"caption": "-", "id": "side-bar-new-separator"},
{
"caption": "Save Views",
"id": "side-bar-folder-save",
"command": "side_bar_folder_save",
"id": "side-bar-folder-save-views",
"command": "side_bar_folder_save_views",
"args": {"paths": []}
},
{
"caption": "Close Views",
"id": "side-bar-folder-close",
"command": "side_bar_folder_close",
"id": "side-bar-folder-close-views",
"command": "side_bar_folder_close_views",
"args": {"paths": []}
},
{"caption": "-", "id": "side-bar-save-close-separator"},
{
"caption": "Close Other Views",
"id": "side-bar-folder-close-other-views",
"command": "side_bar_folder_close_other_views",
"args": {"paths": []}
},
{"caption": "-", "id": "side-bar-save-close-views-separator"},
{
"caption": "Edit",
"id": "side-bar-edit",
Expand Down
31 changes: 29 additions & 2 deletions SideBar.py
Expand Up @@ -264,7 +264,7 @@ def is_enabled(self, paths=[]):
return CACHED_SELECTION(paths).len() > 0


class SideBarFolderSaveCommand(sublime_plugin.WindowCommand):
class SideBarFolderSaveViewsCommand(sublime_plugin.WindowCommand):
def run(self, paths=[]):
views = []
for item in SideBarSelection(paths).getSelectedDirectories():
Expand All @@ -291,7 +291,7 @@ def is_visible(self, paths=[]):
return not s.get("disabled_menuitem_folder_save", False)


class SideBarFolderCloseCommand(sublime_plugin.WindowCommand):
class SideBarFolderCloseViewsCommand(sublime_plugin.WindowCommand):
def run(self, paths=[]):
for item in SideBarSelection(paths).getSelectedDirectories():
for view in item.views():
Expand All @@ -307,6 +307,33 @@ def is_visible(self, paths=[]):
return not s.get("disabled_menuitem_folder_close", False)


class SideBarFolderCloseOtherViewsCommand(sublime_plugin.WindowCommand):
def run(self, paths=[]):

to_close = self.others_views(paths)
for view in to_close:
view.close()

def others_views(self, paths=[]):
window = Window()
opened = []
selected = []
for view in window.views():
opened.append(view)
for item in SideBarSelection(paths).getSelectedDirectories():
for view in item.views():
selected.append(view)

return [view for view in opened if view not in selected]

def is_enabled(self, paths=[]):
views = self.others_views(paths)
return CACHED_SELECTION(paths).hasDirectories() and len(views) > 0

def is_visible(self, paths=[]):
return not s.get("disabled_menuitem_folder_close", False)


class SideBarEditCommand(sublime_plugin.WindowCommand):
def run(self, paths=[]):
for item in SideBarSelection(paths).getSelectedFiles():
Expand Down

0 comments on commit 69af47f

Please sign in to comment.