eric7/JediInterface/JediClient.py

branch
eric7
changeset 8668
d29c775b8bd7
parent 8666
3a62b4009df9
child 8669
c26ecdb00a8b
equal deleted inserted replaced
8667:99dfcefcc4d8 8668:d29c775b8bd7
40 @type str 40 @type str
41 """ 41 """
42 super().__init__(host, port, idString) 42 super().__init__(host, port, idString)
43 43
44 # TODO: add additional methods for these topics 44 # TODO: add additional methods for these topics
45 # - rename variable
46 # - extract function 45 # - extract function
47 # - extract variable 46 # - extract variable
48 # - inline variable 47 # - inline variable
49 self.__methodMapping = { 48 self.__methodMapping = {
50 "openProject": self.__openProject, 49 "openProject": self.__openProject,
56 "hoverHelp": self.__getHoverHelp, 55 "hoverHelp": self.__getHoverHelp,
57 "gotoDefinition": self.__getAssignment, 56 "gotoDefinition": self.__getAssignment,
58 "gotoReferences": self.__getReferences, 57 "gotoReferences": self.__getReferences,
59 58
60 "renameVariable": self.__renameVariable, 59 "renameVariable": self.__renameVariable,
60 "extractVariable": self.__extractVariable,
61 "inlineVariable": self.__inlineVariable,
61 "applyRefactoring": self.__applyRefactoring, 62 "applyRefactoring": self.__applyRefactoring,
62 "cancelRefactoring": self.__cancelRefactoring, 63 "cancelRefactoring": self.__cancelRefactoring,
63 } 64 }
64 65
65 self.__id = idString 66 self.__id = idString
442 "Diff": diff, 443 "Diff": diff,
443 "Uuid": uid, 444 "Uuid": uid,
444 } 445 }
445 result.update(errorDict) 446 result.update(errorDict)
446 447
447 self.sendJson("RenameVariableDiff", result) 448 self.sendJson("RefactoringDiff", result)
449
450 def __extractVariable(self, params):
451 """
452 Private method to extract a statement to a new variable.
453
454 @param params dictionary containing the method parameters
455 @type dict
456 """
457 filename = params["FileName"]
458 source = params["Source"]
459 line = params["Line"]
460 index = params["Index"]
461 endLine = params["EndLine"]
462 endIndex = params["EndIndex"]
463 uid = params["Uuid"]
464 newName = params["NewName"]
465
466 errorDict = {}
467 diff = ""
468
469 script = jedi.Script(source, path=filename, project=self.__project)
470
471 try:
472 refactoring = script.extract_variable(
473 line, index, new_name=newName,
474 until_line=endLine, until_column=endIndex
475 )
476 self.__refactorings[uid] = refactoring
477 diff = refactoring.get_diff()
478 except SuppressedException as err:
479 errorDict = self.__handleError(err)
480
481 result = {
482 "Diff": diff,
483 "Uuid": uid,
484 }
485 result.update(errorDict)
486
487 self.sendJson("RefactoringDiff", result)
488
489 def __inlineVariable(self, params):
490 """
491 Private method to inline a variable statement.
492
493 @param params dictionary containing the method parameters
494 @type dict
495 """
496 filename = params["FileName"]
497 source = params["Source"]
498 line = params["Line"]
499 index = params["Index"]
500 uid = params["Uuid"]
501
502 errorDict = {}
503 diff = ""
504
505 script = jedi.Script(source, path=filename, project=self.__project)
506
507 try:
508 refactoring = script.inline(line, index)
509 self.__refactorings[uid] = refactoring
510 diff = refactoring.get_diff()
511 except SuppressedException as err:
512 errorDict = self.__handleError(err)
513
514 result = {
515 "Diff": diff,
516 "Uuid": uid,
517 }
518 result.update(errorDict)
519
520 self.sendJson("RefactoringDiff", result)
448 521
449 def __applyRefactoring(self, params): 522 def __applyRefactoring(self, params):
450 """ 523 """
451 Private method to apply a refactoring. 524 Private method to apply a refactoring.
452 525

eric ide

mercurial