RefactoringRope/CodeAssistServer.py

changeset 360
2b35968f3d02
parent 354
a967ff16629a
child 365
f740b50380df
diff -r 5e0c63a80d6a -r 2b35968f3d02 RefactoringRope/CodeAssistServer.py
--- a/RefactoringRope/CodeAssistServer.py	Sun May 09 14:30:51 2021 +0200
+++ b/RefactoringRope/CodeAssistServer.py	Mon May 10 20:13:48 2021 +0200
@@ -11,20 +11,26 @@
 import sys
 import contextlib
 
-from PyQt5.QtCore import pyqtSlot, QCoreApplication, QTimer
+from PyQt5.QtCore import (
+    pyqtSlot, QCoreApplication, QTimer
+)
 
 from E5Gui.E5Application import e5App
 from E5Gui import E5MessageBox
 
 from QScintilla.Editor import Editor
 
-from .JsonServer import JsonServer
+try:
+    from E5Network.E5JsonServer import E5JsonServer
+except ImportError:
+    # TODO: delete JsonServer once ported to eric7
+    from .JsonServer import JsonServer as E5JsonServer
 
 import Globals
 import Preferences
 
 
-class CodeAssistServer(JsonServer):
+class CodeAssistServer(E5JsonServer):
     """
     Class implementing the autocompletion interface to rope.
     """
@@ -620,15 +626,22 @@
             
             client = os.path.join(os.path.dirname(__file__),
                                   "CodeAssistClient.py")
-            ok = self.startClient(interpreter, client, [configDir],
-                                  idString=idString, environment=clientEnv)
+            ok, exitCode = self.startClient(
+                interpreter, client,
+                clientArgs=[configDir, Globals.getPythonModulesDirectory()],
+                idString=idString, environment=clientEnv)
             if not ok:
-                self.__ui.appendToStderr(self.tr(
-                    "'{0}' is not supported because the configured interpreter"
-                    " could not be started.\n"
-                ).format(idString))
+                if exitCode == 42:
+                    self.__ui.appendToStderr("CodeAssistServer: " + self.tr(
+                        "The rope refactoring library is not installed.\n"
+                    ))
+                else:
+                    self.__ui.appendToStderr("CodeAssistServer: " + self.tr(
+                        "'{0}' is not supported because the configured"
+                        " interpreter could not be started.\n"
+                    ).format(idString))
         else:
-            self.__ui.appendToStderr(self.tr(
+            self.__ui.appendToStderr("CodeAssistServer: " + self.tr(
                 "'{0}' is not supported because no suitable interpreter is"
                 " configured.\n"
             ).format(idString))
@@ -676,8 +689,8 @@
                         else:
                             clientEnv["PATH"] = execPath
             if interpreter:
-                ok = self.__startCodeAssistClient(interpreter, idString,
-                                                  clientEnv)
+                ok = self.__startCodeAssistClient(
+                    interpreter, idString, clientEnv)
             else:
                 ok = False
         return ok

eric ide

mercurial