RefactoringRope/RefactoringClient.py

branch
server_client_variant
changeset 187
c7600eee9047
parent 186
d547caa795d7
child 188
05fb0977ce1b
equal deleted inserted replaced
186:d547caa795d7 187:c7600eee9047
80 "CalculateSignatureChanges": self.__calculateSignatureChanges, 80 "CalculateSignatureChanges": self.__calculateSignatureChanges,
81 "CalculateInlineArgumentDefaultChanges": 81 "CalculateInlineArgumentDefaultChanges":
82 self.__calculateInlineArgumentDefaultChanges, 82 self.__calculateInlineArgumentDefaultChanges,
83 "CalculateModuleToPackageChanges": 83 "CalculateModuleToPackageChanges":
84 self.__calculateModuleToPackageChanges, 84 self.__calculateModuleToPackageChanges,
85 "RequestFieldName": self.__requestFieldName,
86 "CalculateEncapsulateFieldChanges":
87 self.__calculateEncapsulateFieldChanges,
88 "CalculateLocalToAttributeChanges":
89 self.__calculateLocalToAttributeChanges,
85 } 90 }
86 91
87 from FileSystemCommands import RefactoringClientFileSystemCommands 92 from FileSystemCommands import RefactoringClientFileSystemCommands
88 self.__fsCommands = RefactoringClientFileSystemCommands(self) 93 self.__fsCommands = RefactoringClientFileSystemCommands(self)
89 94
467 errorDict = {} 472 errorDict = {}
468 473
469 self.__progressHandle = ProgressHandle(self, params["Title"], False) 474 self.__progressHandle = ProgressHandle(self, params["Title"], False)
470 try: 475 try:
471 changes = self.__changes[params["ChangeGroup"]] 476 changes = self.__changes[params["ChangeGroup"]]
472 self.__project.do(changes, self.__progressHandle) 477 if changes is not None:
478 self.__project.do(changes, self.__progressHandle)
473 except Exception as err: 479 except Exception as err:
474 errorDict = self.__handleRopeError(err) 480 errorDict = self.__handleRopeError(err)
475 self.__progressHandle.reset() 481 self.__progressHandle.reset()
476 self.__progressHandle = None 482 self.__progressHandle = None
477 483
538 newName = params["NewName"] 544 newName = params["NewName"]
539 renameHierarchy = params["RenameHierarchy"] 545 renameHierarchy = params["RenameHierarchy"]
540 renameInStrings = params["RenameInStrings"] 546 renameInStrings = params["RenameInStrings"]
541 547
542 errorDict = {} 548 errorDict = {}
543 changes = [] 549 changes = None
544 result = { 550 result = {
545 "ChangeGroup": changeGroup, 551 "ChangeGroup": changeGroup,
546 "Title": title, 552 "Title": title,
547 } 553 }
548 554
621 onlyCalls = params["OnlyCalls"] 627 onlyCalls = params["OnlyCalls"]
622 reads = params["Reads"] 628 reads = params["Reads"]
623 writes = params["Writes"] 629 writes = params["Writes"]
624 630
625 errorDict = {} 631 errorDict = {}
626 changes = [] 632 changes = None
627 result = { 633 result = {
628 "ChangeGroup": changeGroup, 634 "ChangeGroup": changeGroup,
629 "Title": title, 635 "Title": title,
630 } 636 }
631 637
665 newName = params["NewName"] 671 newName = params["NewName"]
666 similar = params["Similar"] 672 similar = params["Similar"]
667 global_ = params["Global"] 673 global_ = params["Global"]
668 674
669 errorDict = {} 675 errorDict = {}
670 changes = [] 676 changes = None
671 result = { 677 result = {
672 "ChangeGroup": changeGroup, 678 "ChangeGroup": changeGroup,
673 "Title": title, 679 "Title": title,
674 } 680 }
675 681
749 filename = params["FileName"] 755 filename = params["FileName"]
750 offset = params["Offset"] 756 offset = params["Offset"]
751 kind = params["Kind"] 757 kind = params["Kind"]
752 758
753 errorDict = {} 759 errorDict = {}
754 changes = [] 760 changes = None
755 result = { 761 result = {
756 "ChangeGroup": changeGroup, 762 "ChangeGroup": changeGroup,
757 "Title": title, 763 "Title": title,
758 } 764 }
759 765
848 newName = params["NewName"] 854 newName = params["NewName"]
849 attribute = params["Attribute"] 855 attribute = params["Attribute"]
850 destination = params["DestinationModule"] 856 destination = params["DestinationModule"]
851 857
852 errorDict = {} 858 errorDict = {}
853 changes = [] 859 changes = None
854 result = { 860 result = {
855 "ChangeGroup": changeGroup, 861 "ChangeGroup": changeGroup,
856 "Title": title, 862 "Title": title,
857 } 863 }
858 864
938 title = params["Title"] 944 title = params["Title"]
939 filename = params["FileName"] 945 filename = params["FileName"]
940 offset = params["Offset"] 946 offset = params["Offset"]
941 947
942 errorDict = {} 948 errorDict = {}
943 changes = [] 949 changes = None
944 result = { 950 result = {
945 "ChangeGroup": changeGroup, 951 "ChangeGroup": changeGroup,
946 "Title": title, 952 "Title": title,
947 } 953 }
948 954
981 offset = params["Offset"] 987 offset = params["Offset"]
982 factoryName = params["Name"] 988 factoryName = params["Name"]
983 globalFactory = params["GlobalFactory"] 989 globalFactory = params["GlobalFactory"]
984 990
985 errorDict = {} 991 errorDict = {}
986 changes = [] 992 changes = None
987 result = { 993 result = {
988 "ChangeGroup": changeGroup, 994 "ChangeGroup": changeGroup,
989 "Title": title, 995 "Title": title,
990 } 996 }
991 997
1026 filename = params["FileName"] 1032 filename = params["FileName"]
1027 offset = params["Offset"] 1033 offset = params["Offset"]
1028 parameterName = params["Name"] 1034 parameterName = params["Name"]
1029 1035
1030 errorDict = {} 1036 errorDict = {}
1031 changes = [] 1037 changes = None
1032 result = { 1038 result = {
1033 "ChangeGroup": changeGroup, 1039 "ChangeGroup": changeGroup,
1034 "Title": title, 1040 "Title": title,
1035 } 1041 }
1036 1042
1065 filename = params["FileName"] 1071 filename = params["FileName"]
1066 offset = params["Offset"] 1072 offset = params["Offset"]
1067 methodName = params["MethodName"] 1073 methodName = params["MethodName"]
1068 1074
1069 errorDict = {} 1075 errorDict = {}
1070 changes = [] 1076 changes = None
1071 result = { 1077 result = {
1072 "ChangeGroup": changeGroup, 1078 "ChangeGroup": changeGroup,
1073 "Title": title, 1079 "Title": title,
1074 } 1080 }
1075 1081
1123 goal = params["Goal"] 1129 goal = params["Goal"]
1124 args = params["Args"] 1130 args = params["Args"]
1125 imports = params["Imports"] 1131 imports = params["Imports"]
1126 1132
1127 errorDict = {} 1133 errorDict = {}
1128 changes = [] 1134 changes = None
1129 result = { 1135 result = {
1130 "ChangeGroup": changeGroup, 1136 "ChangeGroup": changeGroup,
1131 "Title": title, 1137 "Title": title,
1132 } 1138 }
1133 1139
1204 newOrdering = params["Ordering"] 1210 newOrdering = params["Ordering"]
1205 autodef = params["AutoDef"] 1211 autodef = params["AutoDef"]
1206 doHierarchy = params["Hierarchy"] 1212 doHierarchy = params["Hierarchy"]
1207 1213
1208 errorDict = {} 1214 errorDict = {}
1215 changes = None
1209 result = { 1216 result = {
1210 "ChangeGroup": changeGroup, 1217 "ChangeGroup": changeGroup,
1211 "Title": title, 1218 "Title": title,
1212 } 1219 }
1213 1220
1261 filename = params["FileName"] 1268 filename = params["FileName"]
1262 offset = params["Offset"] 1269 offset = params["Offset"]
1263 argumentIndex = params["Index"] 1270 argumentIndex = params["Index"]
1264 1271
1265 errorDict = {} 1272 errorDict = {}
1273 changes = None
1266 result = { 1274 result = {
1267 "ChangeGroup": changeGroup, 1275 "ChangeGroup": changeGroup,
1268 "Title": title, 1276 "Title": title,
1269 } 1277 }
1270 1278
1302 changeGroup = params["ChangeGroup"] 1310 changeGroup = params["ChangeGroup"]
1303 title = params["Title"] 1311 title = params["Title"]
1304 filename = params["FileName"] 1312 filename = params["FileName"]
1305 1313
1306 errorDict = {} 1314 errorDict = {}
1315 changes = None
1307 result = { 1316 result = {
1308 "ChangeGroup": changeGroup, 1317 "ChangeGroup": changeGroup,
1309 "Title": title, 1318 "Title": title,
1310 } 1319 }
1311 1320
1334 1343
1335 result["Subcommand"] = "ChangesCalculated" 1344 result["Subcommand"] = "ChangesCalculated"
1336 result.update(errorDict) 1345 result.update(errorDict)
1337 1346
1338 self.sendJson("Changes", result) 1347 self.sendJson("Changes", result)
1348
1349 def __requestFieldName(self, params):
1350 """
1351 Private method to calculate the 'Field Name' based on the parameters
1352 sent by the server.
1353
1354 @param params dictionary containing the method parameters sent by
1355 the server
1356 @type dict
1357 """
1358 changeGroup = params["ChangeGroup"]
1359 title = params["Title"]
1360 filename = params["FileName"]
1361 offset = params["Offset"]
1362
1363 errorDict = {}
1364 result = {
1365 "Subcommand": "FieldName",
1366 "ChangeGroup": changeGroup,
1367 "Title": title,
1368 }
1369
1370 import rope.refactor.encapsulate_field
1371 resource = rope.base.libutils.path_to_resource(
1372 self.__project, filename)
1373 try:
1374 encapsulateField = \
1375 rope.refactor.encapsulate_field.EncapsulateField(
1376 self.__project, resource, offset)
1377 result["Name"] = encapsulateField.get_field_name()
1378 except Exception as err:
1379 errorDict = self.__handleRopeError(err)
1380
1381 result.update(errorDict)
1382
1383 self.sendJson("Changes", result)
1384
1385 def __calculateEncapsulateFieldChanges(self, params):
1386 """
1387 Private method to calculate the 'Encapsulate Field' changes based on
1388 the parameters sent by the server.
1389
1390 @param params dictionary containing the method parameters sent by
1391 the server
1392 @type dict
1393 """
1394 changeGroup = params["ChangeGroup"]
1395 title = params["Title"]
1396 filename = params["FileName"]
1397 offset = params["Offset"]
1398 getter = params["Getter"]
1399 setter = params["Setter"]
1400
1401 errorDict = {}
1402 changes = None
1403 result = {
1404 "ChangeGroup": changeGroup,
1405 "Title": title,
1406 }
1407
1408 import rope.refactor.encapsulate_field
1409 resource = rope.base.libutils.path_to_resource(
1410 self.__project, filename)
1411 self.__progressHandle = ProgressHandle(self, title, True)
1412 try:
1413 encapsulateField = \
1414 rope.refactor.encapsulate_field.EncapsulateField(
1415 self.__project, resource, offset)
1416 changes = encapsulateField.get_changes(
1417 getter=getter, setter=setter,
1418 task_handle=self.__progressHandle)
1419 except Exception as err:
1420 errorDict = self.__handleRopeError(err)
1421 self.__progressHandle.reset()
1422 self.__progressHandle = None
1423
1424 self.__changes[changeGroup] = changes
1425
1426 result["Subcommand"] = "ChangesCalculated"
1427 result.update(errorDict)
1428
1429 self.sendJson("Changes", result)
1430
1431 def __calculateLocalToAttributeChanges(self, params):
1432 """
1433 Private method to calculate the 'Local Variabe to Attribute' changes
1434 based on the parameters sent by the server.
1435
1436 @param params dictionary containing the method parameters sent by
1437 the server
1438 @type dict
1439 """
1440 changeGroup = params["ChangeGroup"]
1441 title = params["Title"]
1442 filename = params["FileName"]
1443 offset = params["Offset"]
1444
1445 errorDict = {}
1446 changes = None
1447 result = {
1448 "ChangeGroup": changeGroup,
1449 "Title": title,
1450 }
1451
1452 import rope.refactor.localtofield
1453 resource = rope.base.libutils.path_to_resource(
1454 self.__project, filename)
1455 try:
1456 changes = rope.refactor.localtofield.LocalToField(
1457 self.__project, resource, offset).get_changes()
1458 except Exception as err:
1459 errorDict = self.__handleRopeError(err)
1460
1461 self.__changes[changeGroup] = changes
1462
1463 # send the change description first
1464 if changes:
1465 description = changes.description
1466 else:
1467 description = ""
1468 self.sendJson("Changes", {
1469 "ChangeGroup": changeGroup,
1470 "Title": title,
1471 "Subcommand": "ChangeDescription",
1472 "Description": description,
1473 })
1474
1475 result["Subcommand"] = "ChangesCalculated"
1476 result.update(errorDict)
1477
1478 self.sendJson("Changes", result)
1339 1479
1340 1480
1341 if __name__ == '__main__': 1481 if __name__ == '__main__':
1342 if len(sys.argv) != 4: 1482 if len(sys.argv) != 4:
1343 print('Host, port and project path parameters are missing. Abort.') 1483 print('Host, port and project path parameters are missing. Abort.')

eric ide

mercurial