RefactoringRope/CodeAssistServer.py

changeset 335
9438c2ed7732
parent 326
67bcde9c65b9
child 337
cfff39f4594d
equal deleted inserted replaced
334:fe30dc24c9e5 335:9438c2ed7732
97 "package": self.tr("package"), 97 "package": self.tr("package"),
98 "object": self.tr("object"), 98 "object": self.tr("object"),
99 "<unknown>": self.tr("not known"), 99 "<unknown>": self.tr("not known"),
100 } 100 }
101 101
102 # Python 2
103 self.__ensureActive("Python2")
104
105 # Python 3 102 # Python 3
106 self.__ensureActive("Python3") 103 self.__ensureActive("Python3")
107 104
108 def setAsyncCompletions(self, asynchronous): 105 def setAsyncCompletions(self, asynchronous):
109 """ 106 """
118 """ 115 """
119 Private method to update the editor language to connection mapping. 116 Private method to update the editor language to connection mapping.
120 """ 117 """
121 self.__editorLanguageMapping = {} 118 self.__editorLanguageMapping = {}
122 for name in self.connectionNames(): 119 for name in self.connectionNames():
123 if name == "Python2": 120 if name == "Python3":
124 self.__editorLanguageMapping.update({
125 "Python": "Python2",
126 "Python2": "Python2",
127 "Pygments|Python": "Python2",
128 })
129 elif name == "Python3":
130 self.__editorLanguageMapping.update({ 121 self.__editorLanguageMapping.update({
131 "Python3": "Python3", 122 "Python3": "Python3",
132 "Pygments|Python 3": "Python3", 123 "Pygments|Python 3": "Python3",
133 "MicroPython": "Python3", 124 "MicroPython": "Python3",
134 }) 125 })
668 else: 659 else:
669 interpreter = "" 660 interpreter = ""
670 venvName = "" 661 venvName = ""
671 clientEnv = os.environ.copy() 662 clientEnv = os.environ.copy()
672 if "PATH" in clientEnv: 663 if "PATH" in clientEnv:
673 try: 664 clientEnv["PATH"] = self.__ui.getOriginalPathString()
674 clientEnv["PATH"] = self.__ui.getOriginalPathString() 665 venvManager = e5App().getObject("VirtualEnvManager")
675 except AttributeError: 666 if idString == "Python3":
676 # ignore for eric6 < 18.12 667 # Python 3
677 pass 668 venvName = Preferences.getDebugger("Python3VirtualEnv")
678 try: 669 if not venvName and sys.version_info[0] >= 3:
679 # new code using virtual environments 670 venvName, _ = venvManager.getDefaultEnvironment()
680 venvManager = e5App().getObject("VirtualEnvManager") 671 if venvName:
681 if idString == "Python2": 672 interpreter = venvManager.getVirtualenvInterpreter(
682 # Python 2 673 venvName)
683 venvName = Preferences.getDebugger("Python2VirtualEnv") 674
684 if not venvName and sys.version_info[0] == 2: 675 execPath = venvManager.getVirtualenvExecPath(venvName)
685 try: 676
686 venvName, _ = ( 677 # build a suitable environment
687 venvManager.getDefaultEnvironment() 678 if execPath:
688 ) 679 if "PATH" in clientEnv:
689 except AttributeError: 680 clientEnv["PATH"] = os.pathsep.join(
690 # ignore for eric6 < 18.10 681 [execPath, clientEnv["PATH"]])
691 pass 682 else:
692 elif idString == "Python3": 683 clientEnv["PATH"] = execPath
693 # Python 3
694 venvName = Preferences.getDebugger("Python3VirtualEnv")
695 if not venvName and sys.version_info[0] >= 3:
696 try:
697 venvName, _ = (
698 venvManager.getDefaultEnvironment()
699 )
700 except AttributeError:
701 # ignore for eric6 < 18.10
702 pass
703 if venvName:
704 interpreter = venvManager.getVirtualenvInterpreter(
705 venvName)
706
707 try:
708 execPath = venvManager.getVirtualenvExecPath(
709 venvName)
710 except AttributeError:
711 # eric6 < 18.12
712 execPath = ""
713
714 # build a suitable environment
715 if execPath:
716 if "PATH" in clientEnv:
717 clientEnv["PATH"] = os.pathsep.join(
718 [execPath, clientEnv["PATH"]])
719 else:
720 clientEnv["PATH"] = execPath
721 except KeyError:
722 # backward compatibility (eric <18.07)
723 if idString == "Python2":
724 # Python 2
725 interpreter = Preferences.getDebugger(
726 "PythonInterpreter")
727 elif idString == "Python3":
728 # Python 3
729 interpreter = Preferences.getDebugger(
730 "Python3Interpreter")
731 if interpreter: 684 if interpreter:
732 ok = self.__startCodeAssistClient(interpreter, idString, 685 ok = self.__startCodeAssistClient(interpreter, idString,
733 clientEnv) 686 clientEnv)
734 else: 687 else:
735 ok = False 688 ok = False
761 714
762 # get virtual environment from project first 715 # get virtual environment from project first
763 venvName = self.__e5project.getDebugProperty("VIRTUALENV") 716 venvName = self.__e5project.getDebugProperty("VIRTUALENV")
764 if not venvName: 717 if not venvName:
765 # get it from debugger settings next 718 # get it from debugger settings next
766 if projectLanguage == "Python2": 719 if projectLanguage == "Python3":
767 # Python 2
768 venvName = Preferences.getDebugger("Python2VirtualEnv")
769 if not venvName and sys.version_info[0] == 2:
770 try:
771 venvName, _ = (
772 venvManager.getDefaultEnvironment()
773 )
774 except AttributeError:
775 # ignore for eric6 < 18.10
776 pass
777 elif projectLanguage == "Python3":
778 # Python 3 720 # Python 3
779 venvName = Preferences.getDebugger("Python3VirtualEnv") 721 venvName = Preferences.getDebugger("Python3VirtualEnv")
780 if not venvName and sys.version_info[0] >= 3: 722 if not venvName and sys.version_info[0] >= 3:
781 try: 723 try:
782 venvName, _ = ( 724 venvName, _ = (
809 # backward compatibility (eric < 18.07) 751 # backward compatibility (eric < 18.07)
810 # get interpreter from project first 752 # get interpreter from project first
811 interpreter = self.__e5project.getDebugProperty("INTERPRETER") 753 interpreter = self.__e5project.getDebugProperty("INTERPRETER")
812 if not interpreter or not Utilities.isinpath(interpreter): 754 if not interpreter or not Utilities.isinpath(interpreter):
813 # get it from debugger settings second 755 # get it from debugger settings second
814 if projectLanguage == "Python2": 756 if projectLanguage == "Python3":
815 interpreter = Preferences.getDebugger(
816 "PythonInterpreter")
817 elif projectLanguage == "Python3":
818 interpreter = Preferences.getDebugger( 757 interpreter = Preferences.getDebugger(
819 "Python3Interpreter") 758 "Python3Interpreter")
820 759
821 return interpreter, clientEnv 760 return interpreter, clientEnv
822 761

eric ide

mercurial