RefactoringRope/CodeAssistServer.py

changeset 269
02bf946efbdc
parent 263
a2fee57f83cf
child 270
efc48da49a75
--- a/RefactoringRope/CodeAssistServer.py	Thu May 24 19:19:05 2018 +0200
+++ b/RefactoringRope/CodeAssistServer.py	Wed Jun 20 18:52:38 2018 +0200
@@ -525,14 +525,31 @@
         ok = idString in self.connectionNames()
         if not ok:
             # client is not running
-            if idString == "Python2":
-                # Python 2
-                interpreter = Preferences.getDebugger("PythonInterpreter")
-                ok = self.__startCodeAssistClient(interpreter, "Python2")
-            elif idString == "Python3":
-                # Python 3
-                interpreter = Preferences.getDebugger("Python3Interpreter")
-                ok = self.__startCodeAssistClient(interpreter, "Python3")
+            try:
+                # new code using virtual environments
+                if idString == "Python2":
+                    # Python 2
+                    venvName = Preferences.getDebugger("Python2VirtualEnv")
+                elif idString == "Python3":
+                    # Python 3
+                    venvName = Preferences.getDebugger("Python3VirtualEnv")
+                else:
+                    venvName = ""
+                if venvName:
+                    interpreter = e5App().getObject("VirtualEnvManager")\
+                        .getVirtualenvInterpreter(venvName)
+            except KeyError:
+                # backward compatibility (eric <18.07)
+                if idString == "Python2":
+                    # Python 2
+                    interpreter = Preferences.getDebugger("PythonInterpreter")
+                elif idString == "Python3":
+                    # Python 3
+                    interpreter = Preferences.getDebugger("Python3Interpreter")
+                else:
+                    interpreter = ""
+            if interpreter:
+                ok = self.__startCodeAssistClient(interpreter, idString)
         return ok
     
     @pyqtSlot()

eric ide

mercurial