Anonymous avatar Anonymous committed f5a4c3f

Using task handles for undo/redo refactoring

Comments (0)

Files changed (1)

ropemacs/__init__.py

         if lisp.y_or_n_p('Undo refactoring might change'
                          ' many files; proceed? '):
             self._check_project()
-            for changes in self.project.history.undo():
-                self._reload_buffers(changes.get_changed_resources())
+            def undo(handle):
+                for changes in self.project.history.undo(task_handle=handle):
+                    self._reload_buffers(changes.get_changed_resources())
+            lisputils.RunTask(undo, 'Undo refactoring', interrupts=False)()
 
     @interactive
     def redo_refactoring(self):
         if lisp.y_or_n_p('Redo refactoring might change'
                          ' many files; proceed? '):
             self._check_project()
-            for changes in self.project.history.redo():
-                self._reload_buffers(changes.get_changed_resources())
+            def redo(handle):
+                for changes in self.project.history.redo(task_handle=handle):
+                    self._reload_buffers(changes.get_changed_resources())
+            lisputils.RunTask(redo, 'Redo refactoring', interrupts=False)()
 
     def _get_region(self):
         offset1 = self._get_offset()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.