RefactoringRope/RefactoringClient.py

branch
server_client_variant
changeset 170
05ef7c12a6d4
parent 168
53d76b4fc1ac
child 172
c8890f852917
diff -r fb8a4182f12e -r 05ef7c12a6d4 RefactoringRope/RefactoringClient.py
--- a/RefactoringRope/RefactoringClient.py	Sun Sep 17 17:53:20 2017 +0200
+++ b/RefactoringRope/RefactoringClient.py	Sun Sep 17 18:30:14 2017 +0200
@@ -67,7 +67,8 @@
         
         self.__progressHandle = None
         
-        self.__changes = {}     # dict storing the retrieved changes
+        self.__changes = {}
+        # dict storing the retrieved changes for various refactorings
     
     def handleCall(self, method, params):
         """
@@ -347,7 +348,7 @@
         """
         subcommand = params["Subcommand"]
         if subcommand == "Get":
-            self.__changes = {}
+            changes = {}
             if params["Filename"]:
                 # file history
                 resource = rope.base.libutils.path_to_resource(
@@ -368,25 +369,28 @@
             result = {"Subcommand": "Histories"}
             result["Undo"] = []
             for change in undoList:
-                self.__changes[id(change)] = change
+                changes[id(change)] = change
                 result["Undo"].append([str(change), id(change)])
             result["Redo"] = []
             for change in redoList:
-                self.__changes[id(change)] = change
+                changes[id(change)] = change
                 result["Redo"].append([str(change), id(change)])
             
+            self.__changes["History"] = changes
+            
             self.sendJson("HistoryResult", result)
         
         elif subcommand == "GetChange":
             result = {
                 "Subcommand": "ChangeDescription",
-                "Description": self.__changes[params["Id"]].get_description()
+                "Description": self.__changes["History"][params["Id"]]\
+                    .get_description()
             }
             
             self.sendJson("HistoryResult", result)
         
         elif subcommand in ["Undo", "Redo"]:
-            change = self.__changes[params["Id"]]
+            change = self.__changes["History"][params["Id"]]
             from ProgressHandle import ProgressHandle
             self.__progressHandle = ProgressHandle(self, change.description,
                                                    False)
@@ -410,6 +414,12 @@
         
         elif subcommand == "Clear":
             self.__project.history.clear()
+        
+        elif subcommand == "ClearChanges":
+            try:
+                del self.__changes["History"]
+            except KeyError:
+                pass
 
 if __name__ == '__main__':
     if len(sys.argv) != 4:

eric ide

mercurial