RefactoringRope/RefactoringClient.py

branch
server_client_variant
changeset 188
05fb0977ce1b
parent 187
c7600eee9047
child 190
a1b9b4975806
diff -r c7600eee9047 -r 05fb0977ce1b RefactoringRope/RefactoringClient.py
--- a/RefactoringRope/RefactoringClient.py	Sun Sep 24 11:56:11 2017 +0200
+++ b/RefactoringRope/RefactoringClient.py	Sun Sep 24 13:42:01 2017 +0200
@@ -87,6 +87,8 @@
                 self.__calculateEncapsulateFieldChanges,
             "CalculateLocalToAttributeChanges":
                 self.__calculateLocalToAttributeChanges,
+            "CalculateMethodObjectChanges":
+                self.__calculateMethodObjectChanges,
         }
         
         from FileSystemCommands import RefactoringClientFileSystemCommands
@@ -1476,6 +1478,45 @@
         result.update(errorDict)
         
         self.sendJson("Changes", result)
+    
+    def __calculateMethodObjectChanges(self, params):
+        """
+        Private method to calculate the 'Method to Method Object' changes
+        based on the parameters sent by the server.
+        
+        @param params dictionary containing the method parameters sent by
+            the server
+        @type dict
+        """
+        changeGroup = params["ChangeGroup"]
+        title = params["Title"]
+        filename = params["FileName"]
+        offset = params["Offset"]
+        name = params["Name"]
+        
+        errorDict = {}
+        changes = None
+        result = {
+            "ChangeGroup": changeGroup,
+            "Title": title,
+        }
+        
+        import rope.refactor.method_object
+        resource = rope.base.libutils.path_to_resource(
+            self.__project, filename)
+        try:
+            converter = rope.refactor.method_object.MethodObject(
+                self.__project, resource, offset)
+            changes = converter.get_changes(name)
+        except Exception as err:
+            errorDict = self.__handleRopeError(err)
+        
+        self.__changes[changeGroup] = changes
+        
+        result["Subcommand"] = "ChangesCalculated"
+        result.update(errorDict)
+        
+        self.sendJson("Changes", result)
 
 
 if __name__ == '__main__':

eric ide

mercurial