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