Skip to content

Commit

Permalink
Feature request added -> #146
Browse files Browse the repository at this point in the history
  • Loading branch information
titoBouzout committed Oct 30, 2013
1 parent db45a1c commit dbdaaff
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 1 deletion.
3 changes: 2 additions & 1 deletion Side Bar.sublime-menu
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
{ "caption": "In Project Folders…", "id": "side-bar-find-project-folders", "command": "side_bar_find_in_project_folders"},
{ "caption": "-", "id": "side-bar-find-project-separator"},
{ "id": "side-bar-find-in-files-with-extension", "command": "side_bar_find_in_files_with_extension", "args": {"paths": []}},
{ "caption": "In Paths Containing…", "id": "side-bar-find-files-path-containing", "command": "side_bar_find_files_path_containing", "args": {"paths": []} }
{ "caption": "In Paths Containing…", "id": "side-bar-find-files-path-containing", "command": "side_bar_find_files_path_containing", "args": {"paths": []} },
{ "caption": "Mass rename selection…", "id": "side-bar-mass-rename", "command": "side_bar_mass_rename", "args": {"paths": []} }

]
},
Expand Down
47 changes: 47 additions & 0 deletions SideBar.py
Original file line number Diff line number Diff line change
Expand Up @@ -1010,6 +1010,53 @@ def on_done(self, old, branch, leaf):
def is_enabled(self, paths = []):
return SideBarSelection(paths).len() == 1 and SideBarSelection(paths).hasProjectDirectories() == False

class SideBarMassRenameCommand(sublime_plugin.WindowCommand):
def run(self, paths = []):
import functools
Window().run_command('hide_panel');
view = Window().show_input_panel("Find:", '', functools.partial(self.on_find, paths), None, None)

def on_find(self, paths, find):
if not find:
return
import functools
Window().run_command('hide_panel');
view = Window().show_input_panel("Replace:", '', functools.partial(self.on_replace, paths, find), None, None)

def on_replace(self, paths, find, replace):
if not replace:
return
if find == '' or replace == '':
return None
else:
to_rename_or_move = []
for item in SideBarSelection(paths).getSelectedItemsWithoutChildItems():
self.recurse(item.path(), to_rename_or_move)
print(to_rename_or_move)
to_rename_or_move.sort()
to_rename_or_move.reverse()
for item in to_rename_or_move:
if find in item:
origin = SideBarItem(item, os.path.isdir(item))
destination = SideBarItem(origin.pathProject()+''+origin.pathWithoutProject().replace(find, replace), os.path.isdir(item))
origin.move(destination.path());
SideBarProject().refresh();

def recurse(self, path, paths):
if os.path.isfile(path) or os.path.islink(path):
paths.append(path)
else:
for content in os.listdir(path):
file = os.path.join(path, content)
if os.path.isfile(file) or os.path.islink(file):
paths.append(file)
else:
self.recurse(file, paths)
paths.append(path)

def is_enabled(self, paths = []):
return SideBarSelection(paths).len() > 0 and SideBarSelection(paths).hasProjectDirectories() == False

class SideBarMoveCommand(sublime_plugin.WindowCommand):
def run(self, paths = [], new = False):
import functools
Expand Down

0 comments on commit dbdaaff

Please sign in to comment.