PluginRefactoringRope.py

changeset 104
f6049d39f83d
parent 101
5098ad8960ed
child 106
b2b2107b8047
--- 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

eric ide

mercurial