Skip to content

Instantly share code, notes, and snippets.

@kevinw
Created February 11, 2010 17:06
Show Gist options
  • Save kevinw/301705 to your computer and use it in GitHub Desktop.
Save kevinw/301705 to your computer and use it in GitHub Desktop.
diff -r 172c3949e621 ropemode/interface.py
--- a/ropemode/interface.py Wed Feb 03 22:34:27 2010 +0300
+++ b/ropemode/interface.py Thu Feb 11 12:04:04 2010 -0500
@@ -85,7 +85,10 @@
if self.project is not None:
self.close_project()
progress = self.env.create_progress('Opening [%s] project' % root)
- self.project = rope.base.project.Project(root)
+ fscommands = None
+ if self.env.get('editor_changes'):
+ fscommands = self.env.get_editor_changes_fscommands(root)
+ self.project = rope.base.project.Project(root, fscommands=fscommands)
if self.env.get('enable_autoimport'):
underlined = self.env.get('autoimport_underlineds')
self.autoimport = autoimport.AutoImport(self.project,
@@ -119,7 +122,8 @@
if self.env.y_or_n('Undo [%s]? ' % str(change)):
def undo(handle):
for changes in self.project.history.undo(task_handle=handle):
- self._reload_buffers(changes, undo=True)
+ self._reload_buffers(changes, undo=True,
+ editor_changes=handle.editor_changed_resources)
refactor.runtask(self.env, undo, 'Undo refactoring',
interrupts=False)
@@ -133,7 +137,8 @@
if self.env.y_or_n('Redo [%s]? ' % str(change)):
def redo(handle):
for changes in self.project.history.redo(task_handle=handle):
- self._reload_buffers(changes)
+ self._reload_buffers(changes,
+ editor_changes=handle.editor_changed_resources)
refactor.runtask(self.env, redo, 'Redo refactoring',
interrupts=False)
@@ -461,10 +466,13 @@
break
cwd = newcwd
- def _reload_buffers(self, changes, undo=False):
+ def _reload_buffers(self, changes, undo=False, editor_changes=None):
+ changed_resources = changes.get_changed_resources()
+ if editor_changes is not None:
+ changed_resources = set(changed_resources) - set(editor_changes)
+
self._reload_buffers_for_changes(
- changes.get_changed_resources(),
- self._get_moved_resources(changes, undo))
+ changed_resources, self._get_moved_resources(changes, undo))
def _reload_buffers_for_changes(self, changed, moved={}):
filenames = [resource.real_path for resource in changed]
diff -r 172c3949e621 ropemode/refactor.py
--- a/ropemode/refactor.py Wed Feb 03 22:34:27 2010 +0300
+++ b/ropemode/refactor.py Thu Feb 11 12:04:04 2010 -0500
@@ -88,7 +88,7 @@
return
def perform(handle, self=self, changes=changes):
self.project.do(changes, task_handle=handle)
- self.interface._reload_buffers(changes)
+ self.interface._reload_buffers(changes, editor_changes=handle.editor_changed_resources)
self._done()
runtask(self.env, perform, 'Making %s changes' % self.name,
interrupts=False)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment