65 "CalculateExtractChanges": self.__calculateExtractChanges, |
66 "CalculateExtractChanges": self.__calculateExtractChanges, |
66 "RequestInlineType": self.__requestInlineType, |
67 "RequestInlineType": self.__requestInlineType, |
67 "CalculateInlineChanges": self.__calculateInlineChanges, |
68 "CalculateInlineChanges": self.__calculateInlineChanges, |
68 "RequestMoveType": self.__requestMoveType, |
69 "RequestMoveType": self.__requestMoveType, |
69 "CalculateMoveChanges": self.__calculateMoveChanges, |
70 "CalculateMoveChanges": self.__calculateMoveChanges, |
|
71 "RequestUseFunction": self.__requestUseFunction, |
|
72 "CalculateUseFunctionChanges": self.__calculateUseFunctionChanges, |
70 } |
73 } |
71 |
74 |
72 from FileSystemCommands import RefactoringClientFileSystemCommands |
75 from FileSystemCommands import RefactoringClientFileSystemCommands |
73 self.__fsCommands = RefactoringClientFileSystemCommands(self) |
76 self.__fsCommands = RefactoringClientFileSystemCommands(self) |
74 |
77 |
195 |
198 |
196 errorDict = {} |
199 errorDict = {} |
197 occurrences = [] |
200 occurrences = [] |
198 |
201 |
199 import rope.contrib.findit |
202 import rope.contrib.findit |
200 from ProgressHandle import ProgressHandle |
|
201 resource = rope.base.libutils.path_to_resource( |
203 resource = rope.base.libutils.path_to_resource( |
202 self.__project, filename) |
204 self.__project, filename) |
203 self.__progressHandle = ProgressHandle(self, title, True) |
205 self.__progressHandle = ProgressHandle(self, title, True) |
204 try: |
206 try: |
205 occurrences = rope.contrib.findit.find_occurrences( |
207 occurrences = rope.contrib.findit.find_occurrences( |
275 |
277 |
276 errorDict = {} |
278 errorDict = {} |
277 occurrences = [] |
279 occurrences = [] |
278 |
280 |
279 import rope.contrib.findit |
281 import rope.contrib.findit |
280 from ProgressHandle import ProgressHandle |
|
281 resource = rope.base.libutils.path_to_resource( |
282 resource = rope.base.libutils.path_to_resource( |
282 self.__project, filename) |
283 self.__project, filename) |
283 self.__progressHandle = ProgressHandle(self, title, True) |
284 self.__progressHandle = ProgressHandle(self, title, True) |
284 try: |
285 try: |
285 occurrences = rope.contrib.findit.find_implementations( |
286 occurrences = rope.contrib.findit.find_implementations( |
312 """ |
313 """ |
313 title = params["Title"] |
314 title = params["Title"] |
314 |
315 |
315 errorDict = {} |
316 errorDict = {} |
316 |
317 |
317 from ProgressHandle import ProgressHandle |
|
318 self.__progressHandle = ProgressHandle(self, title, True) |
318 self.__progressHandle = ProgressHandle(self, title, True) |
319 try: |
319 try: |
320 rope.base.libutils.analyze_modules( |
320 rope.base.libutils.analyze_modules( |
321 self.__project, task_handle=self.__progressHandle) |
321 self.__project, task_handle=self.__progressHandle) |
322 except Exception as err: |
322 except Exception as err: |
400 |
400 |
401 self.sendJson("HistoryResult", result) |
401 self.sendJson("HistoryResult", result) |
402 |
402 |
403 elif subcommand in ["Undo", "Redo"]: |
403 elif subcommand in ["Undo", "Redo"]: |
404 change = self.__changes["History"][params["Id"]] |
404 change = self.__changes["History"][params["Id"]] |
405 from ProgressHandle import ProgressHandle |
|
406 self.__progressHandle = ProgressHandle(self, change.description, |
405 self.__progressHandle = ProgressHandle(self, change.description, |
407 False) |
406 False) |
408 if subcommand == "Undo": |
407 if subcommand == "Undo": |
409 self.__project.history.undo( |
408 self.__project.history.undo( |
410 change, task_handle=self.__progressHandle) |
409 change, task_handle=self.__progressHandle) |
543 if isLocal: |
541 if isLocal: |
544 resources = [resource] |
542 resources = [resource] |
545 else: |
543 else: |
546 resources = None |
544 resources = None |
547 |
545 |
548 from ProgressHandle import ProgressHandle |
|
549 self.__progressHandle = ProgressHandle(self, title, True) |
546 self.__progressHandle = ProgressHandle(self, title, True) |
550 try: |
547 try: |
551 renamer = rope.refactor.rename.Rename( |
548 renamer = rope.refactor.rename.Rename( |
552 self.__project, resource, offset) |
549 self.__project, resource, offset) |
553 changes = renamer.get_changes( |
550 changes = renamer.get_changes( |
749 } |
746 } |
750 |
747 |
751 import rope.refactor.extract |
748 import rope.refactor.extract |
752 resource = rope.base.libutils.path_to_resource( |
749 resource = rope.base.libutils.path_to_resource( |
753 self.__project, filename) |
750 self.__project, filename) |
754 from ProgressHandle import ProgressHandle |
|
755 self.__progressHandle = ProgressHandle(self, title, True) |
751 self.__progressHandle = ProgressHandle(self, title, True) |
756 try: |
752 try: |
757 inliner = rope.refactor.inline.create_inline( |
753 inliner = rope.refactor.inline.create_inline( |
758 self.__project, resource, offset) |
754 self.__project, resource, offset) |
759 if kind == "parameter": |
755 if kind == "parameter": |
849 } |
845 } |
850 |
846 |
851 import rope.refactor.move |
847 import rope.refactor.move |
852 resource = rope.base.libutils.path_to_resource( |
848 resource = rope.base.libutils.path_to_resource( |
853 self.__project, filename) |
849 self.__project, filename) |
854 from ProgressHandle import ProgressHandle |
|
855 self.__progressHandle = ProgressHandle(self, title, True) |
850 self.__progressHandle = ProgressHandle(self, title, True) |
856 try: |
851 try: |
857 mover = rope.refactor.move.create_move( |
852 mover = rope.refactor.move.create_move( |
858 self.__project, resource, offset) |
853 self.__project, resource, offset) |
859 if kind == "move_method": |
854 if kind == "move_method": |
880 |
875 |
881 result["Subcommand"] = "ChangesCalculated" |
876 result["Subcommand"] = "ChangesCalculated" |
882 result.update(errorDict) |
877 result.update(errorDict) |
883 |
878 |
884 self.sendJson("Changes", result) |
879 self.sendJson("Changes", result) |
|
880 |
|
881 def __requestUseFunction(self, params): |
|
882 """ |
|
883 Private method to determine the 'Use Function' function name based on |
|
884 the parameters sent by the server. |
|
885 |
|
886 @param params dictionary containing the method parameters sent by |
|
887 the server |
|
888 @type dict |
|
889 """ |
|
890 changeGroup = params["ChangeGroup"] |
|
891 title = params["Title"] |
|
892 filename = params["FileName"] |
|
893 offset = params["Offset"] |
|
894 |
|
895 errorDict = {} |
|
896 result = { |
|
897 "Subcommand": "UseFunctionName", |
|
898 "ChangeGroup": changeGroup, |
|
899 "Title": title, |
|
900 } |
|
901 |
|
902 import rope.refactor.usefunction |
|
903 resource = rope.base.libutils.path_to_resource( |
|
904 self.__project, filename) |
|
905 try: |
|
906 user = rope.refactor.usefunction.UseFunction( |
|
907 self.__project, resource, offset) |
|
908 result["FunctionName"] = user.get_function_name() |
|
909 except Exception as err: |
|
910 errorDict = self.__handleRopeError(err) |
|
911 |
|
912 result.update(errorDict) |
|
913 |
|
914 self.sendJson("Changes", result) |
|
915 |
|
916 def __calculateUseFunctionChanges(self, params): |
|
917 """ |
|
918 Private method to calculate the 'Use Function' changes based on the |
|
919 parameters sent by the server. |
|
920 |
|
921 @param params dictionary containing the method parameters sent by |
|
922 the server |
|
923 @type dict |
|
924 """ |
|
925 changeGroup = params["ChangeGroup"] |
|
926 title = params["Title"] |
|
927 filename = params["FileName"] |
|
928 offset = params["Offset"] |
|
929 |
|
930 errorDict = {} |
|
931 changes = [] |
|
932 result = { |
|
933 "ChangeGroup": changeGroup, |
|
934 "Title": title, |
|
935 } |
|
936 |
|
937 import rope.refactor.usefunction |
|
938 resource = rope.base.libutils.path_to_resource( |
|
939 self.__project, filename) |
|
940 self.__progressHandle = ProgressHandle(self, title, True) |
|
941 try: |
|
942 user = rope.refactor.usefunction.UseFunction( |
|
943 self.__project, resource, offset) |
|
944 changes = user.get_changes(task_handle=self.__progressHandle) |
|
945 except Exception as err: |
|
946 errorDict = self.__handleRopeError(err) |
|
947 self.__progressHandle.reset() |
|
948 self.__progressHandle = None |
|
949 |
|
950 self.__changes[changeGroup] = changes |
|
951 |
|
952 result["Subcommand"] = "ChangesCalculated" |
|
953 result.update(errorDict) |
|
954 |
|
955 self.sendJson("Changes", result) |
885 |
956 |
886 if __name__ == '__main__': |
957 if __name__ == '__main__': |
887 if len(sys.argv) != 4: |
958 if len(sys.argv) != 4: |
888 print('Host, port and project path parameters are missing. Abort.') |
959 print('Host, port and project path parameters are missing. Abort.') |
889 sys.exit(1) |
960 sys.exit(1) |