--- a/PluginRefactoringRope.py Fri Oct 06 18:49:50 2017 +0200 +++ b/PluginRefactoringRope.py Sun Oct 08 17:54:29 2017 +0200 @@ -180,6 +180,7 @@ from RefactoringRope.CodeAssistServer import CodeAssistServer self.__codeAssistServer = CodeAssistServer(self, self.__ui) + self.__codeAssistServer.activate() from RefactoringRope.RefactoringServer import RefactoringServer self.__refactoringServer = RefactoringServer(self, self.__ui) @@ -192,9 +193,8 @@ e5App().getObject("ViewManager").editorClosedEd.connect( self.__editorClosed) - if e5App().getObject("Project").isOpen(): - for editor in e5App().getObject("ViewManager").getOpenEditors(): - self.__editorOpened(editor) + for editor in e5App().getObject("ViewManager").getOpenEditors(): + self.__editorOpened(editor) return None, True @@ -296,8 +296,7 @@ @param editor reference to the new editor @type QScintilla.Editor """ - if self.__codeAssistServer.isSupportedLanguage(editor.getLanguage()): - self.__connectEditor(editor) + self.__connectEditor(editor) editor.languageChanged.connect(self.__editorLanguageChanged) self.__editors.append(editor) @@ -323,12 +322,8 @@ """ editor = self.sender() - if self.__codeAssistServer.isSupportedLanguage(language): - if editor.getCompletionListHook("rope") is None or \ - editor.getCallTipHook("rope") is None: - self.__connectEditor(editor) - else: - self.__disconnectEditor(editor) + self.__disconnectEditor(editor) + self.__connectEditor(editor) def __connectEditor(self, editor): """ @@ -340,29 +335,8 @@ editor.editorAboutToBeSaved.connect(self.__editorAboutToBeSaved) editor.editorSaved.connect(self.__editorSaved) - if self.getPreferences("CodeAssistEnabled"): - self.__setAutoCompletionHook(editor) - if self.getPreferences("CodeAssistCalltipsEnabled"): - self.__setCalltipsHook(editor) - - if self.getPreferences("MouseClickEnabled"): - self.__disconnectMouseClickHandler(editor) - self.__connectMouseClickHandler(editor) - - def __connectMouseClickHandler(self, editor): - """ - Private method to connect the mouse click handler to an editor. - - @param editor reference to the editor - @type QScintilla.Editor - """ - if self.getPreferences("MouseClickGotoButton"): - editor.setMouseClickHandler( - "rope", - self.getPreferences("MouseClickGotoModifiers"), - self.getPreferences("MouseClickGotoButton"), - self.__refactoringServer.gotoDefinition - ) + self.__codeAssistServer.connectEditor(editor) + self.__refactoringServer.connectEditor(editor) def __disconnectEditor(self, editor): """ @@ -378,53 +352,8 @@ # just ignore it pass - if editor.getCompletionListHook("rope"): - self.__unsetAutoCompletionHook(editor) - if editor.getCallTipHook("rope"): - self.__unsetCalltipsHook(editor) - - self.__disconnectMouseClickHandler(editor) - - def __disconnectMouseClickHandler(self, editor): - """ - Private method to disconnect the mouse click handler from an editor. - - @param editor reference to the editor - @type QScintilla.Editor - """ - editor.removeMouseClickHandlers("rope") - - def __setAutoCompletionHook(self, editor): - """ - Private method to set the autocompletion hook. - - @param editor reference to the editor - @type QScintilla.Editor - """ - editor.addCompletionListHook("rope", self.getCompletionsList) - - def __unsetAutoCompletionHook(self, editor): - """ - Private method to unset the autocompletion hook. - - @param editor reference to the editor - @type QScintilla.Editor - """ - editor.removeCompletionListHook("rope") - - def getCompletionsList(self, editor, context): - """ - Public method to get a list of possible completions. - - @param editor reference to the editor object, that called this method - @type QScintilla.Editor - @param context flag indicating to autocomplete a context - @type bool - @return list of possible completions - @rtype list of str - """ - completions = self.__codeAssistServer.getCompletions(editor) - return completions + self.__codeAssistServer.disconnectEditor(editor) + self.__refactoringServer.disconnectEditor(editor) def __editorAboutToBeSaved(self, filename): """ @@ -459,39 +388,14 @@ self.__refactoringServer.reportChanged(filename, "") self.__codeAssistServer.reportChanged(filename, "") - def __setCalltipsHook(self, editor): - """ - Private method to set the calltip hook. - - @param editor reference to the editor - @type QScintilla.Editor - """ - editor.addCallTipHook("rope", self.codeAssistCallTip) - - def __unsetCalltipsHook(self, editor): - """ - Private method to unset the calltip hook. - - @param editor reference to the editor - @type QScintilla.Editor + def getCodeAssistServer(self): """ - editor.removeCallTipHook("rope") - - def codeAssistCallTip(self, editor, pos, commas): - """ - Public method to return a list of calltips. + Public method to get a reference to the code assist server. - @param editor reference to the editor - @type QScintilla.Editor - @param pos position in the text for the calltip - @type int - @param commas minimum number of commas contained in the calltip - @type int - @return list of possible calltips - @rtype list of str + @return reference to the code assist server + @rtype CodeAssistServer """ - cts = self.__codeAssistServer.getCallTips(pos, editor) - return cts + return self.__codeAssistServer # # eflag: noqa = M801