diff -r 2d77b3afc98f -r f6049d39f83d PluginRefactoringRope.py --- a/PluginRefactoringRope.py Sat Mar 07 15:57:24 2015 +0100 +++ b/PluginRefactoringRope.py Sat Mar 07 19:52:36 2015 +0100 @@ -140,6 +140,7 @@ Private slot to (re)initialize the plugin. """ self.__object = None + self.__caObject = None self.__mainAct = None self.__mainMenu = None @@ -180,6 +181,9 @@ refactoringRopePluginObject = self from RefactoringRope.Refactoring import Refactoring + from RefactoringRope.CodeAssist import CodeAssist + + self.__caObject = CodeAssist(self, self) self.__object = Refactoring(self, self.__ui) self.__object.initActions() @@ -351,11 +355,6 @@ enabled = e5App().getObject("Project").getProjectLanguage() in lang self.__mainAct.setEnabled(enabled) self.__projectIsOpen = enabled - - for editor in self.__editors: - if editor.getLanguage() in lang and \ - self.__projectIsOpen: - self.__connectEditor(editor) def __projectClosed(self): """ @@ -363,9 +362,6 @@ """ self.__mainAct.setEnabled(False) self.__projectIsOpen = False - - for editor in self.__editors: - self.__editorClosed(editor) def __editorOpened(self, editor): """ @@ -375,12 +371,11 @@ """ lang = self.__determineLanguage() - if self.__projectIsOpen: - if editor.getLanguage() in lang: - self.__connectEditor(editor) - - editor.languageChanged.connect(self.__editorLanguageChanged) - self.__editors.append(editor) + if editor.getLanguage() in lang: + self.__connectEditor(editor) + + editor.languageChanged.connect(self.__editorLanguageChanged) + self.__editors.append(editor) def __editorClosed(self, editor): """ @@ -402,7 +397,7 @@ editor = self.sender() lang = self.__determineLanguage() - if language in lang and self.__projectIsOpen: + if language in lang: self.__connectEditor(editor) else: self.__disconnectEditor(editor) @@ -507,14 +502,12 @@ """ Private slot to show a list with completion proposals. """ - from RefactoringRope.CodeAssist import CodeAssist from QScintilla.Editor import EditorAutoCompletionListID if self.__currentEditor is not None: if self.__currentEditor.isListActive(): self.__currentEditor.cancelList() - ca = CodeAssist(self.__object, self.__currentEditor, self, self) - completions = ca.getCompletions() + completions = self.__caObject.getCompletions(self.__currentEditor) if len(completions) == 0 and \ self.getPreferences("ShowQScintillaCompletions"): # try QScintilla autocompletion @@ -546,19 +539,12 @@ @param filename name of the file that was saved (string) """ - import rope.base.libutils - - try: - if filename == self.__savedEditorName and self.__oldEditorText: - rope.base.libutils.report_change(self.__object.getProject(), - self.__savedEditorName, self.__oldEditorText) - elif self.__savedEditorName == "": - rope.base.libutils.report_change(self.__object.getProject(), - filename, "") - except RuntimeError: - # this could come from trying to do PyQt4/PyQt5 mixed stuff - # simply ignore it - pass + # TODO: report change to the refactoring object as well + if filename == self.__savedEditorName and self.__oldEditorText: + self.__caObject.reportChanged(self.__savedEditorName, + self.__oldEditorText) + else: + self.__caObject.reportChanged(filename, "") def __setCalltipsHook(self, editor): """ @@ -586,7 +572,5 @@ (integer) @return list of possible calltips (list of strings) """ - from RefactoringRope.CodeAssist import CodeAssist - ca = CodeAssist(self.__object, editor, self, self) - cts = ca.getCallTips(pos) + cts = self.__caObject.getCallTips(pos, editor) return cts