--- a/eric6/UI/PythonAstViewer.py Sun Sep 20 18:32:43 2020 +0200 +++ b/eric6/UI/PythonAstViewer.py Mon Sep 21 19:03:35 2020 +0200 @@ -115,6 +115,16 @@ QTimer.singleShot(0, self.__selectItemForEditorSelection) QTimer.singleShot(0, self.__grabFocus) + def __editorLanguageChanged(self, editor): + """ + Private slot to handle a change of the editor language. + + @param editor reference to the editor which changed language + @type Editor + """ + if editor is self.__editor: + QTimer.singleShot(0, self.__loadDIS) + def __lastEditorClosed(self): """ Private slot to handle the last editor closed signal of the view @@ -132,6 +142,8 @@ self.__vm.editorChangedEd.connect(self.__editorChanged) self.__vm.editorSavedEd.connect(self.__editorSaved) self.__vm.editorDoubleClickedEd.connect(self.__editorDoubleClicked) + self.__vm.editorLanguageChanged.connect( + self.__editorLanguageChanged) self.__vmConnected = True def hide(self): @@ -148,6 +160,8 @@ self.__vm.editorSavedEd.disconnect(self.__editorSaved) self.__vm.editorDoubleClickedEd.disconnect( self.__editorDoubleClicked) + self.__vm.editorLanguageChanged.disconnect( + self.__editorLanguageChanged) self.__vmConnected = False def shutdown(self): @@ -164,7 +178,7 @@ @type bool """ editor = self.__vm.activeWindow() - if on and editor and editor.isPyFile(): + if on: if editor is not self.__editor: self.__editor = editor self.show() @@ -193,20 +207,26 @@ editor and visualize it. """ if not self.__editor: + self.__createErrorItem(self.tr( + "No editor has been opened." + )) return self.__astWidget.clear() self.__editor.clearAllHighlights() - if not self.__editor.isPyFile(): + source = self.__editor.text() + if not source.strip(): + # empty editor or white space only self.__createErrorItem(self.tr( - "The current editor text does not contain Python source." + "The current editor does not contain any source code." )) return - source = self.__editor.text() - if not source.strip(): - # empty editor or white space only + if not self.__editor.isPyFile(): + self.__createErrorItem(self.tr( + "The current editor does not contain Python source code." + )) return QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))