--- a/eric6/QScintilla/Editor.py Mon Feb 01 10:38:43 2021 +0100 +++ b/eric6/QScintilla/Editor.py Tue Mar 02 17:12:08 2021 +0100 @@ -171,21 +171,29 @@ } def __init__(self, dbs, fn="", vm=None, - filetype="", editor=None, tv=None): + filetype="", editor=None, tv=None, + parent=None): """ Constructor @param dbs reference to the debug server object - @param fn name of the file to be opened (string). If it is None, - a new (empty) editor is opened + @type DebugServer + @param fn name of the file to be opened. If it is None, a new (empty) + editor is opened. + @type str @param vm reference to the view manager object - (ViewManager.ViewManager) - @param filetype type of the source file (string) + @type ViewManager + @param filetype type of the source file + @type str @param editor reference to an Editor object, if this is a cloned view + @type Editor @param tv reference to the task viewer object + @type TaskViewer + @param parent reference to the parent widget + @type QWidget @exception OSError raised to indicate an issue accessing the file """ - super(Editor, self).__init__() + super(Editor, self).__init__(parent) self.setAttribute(Qt.WA_KeyCompression) self.setUtf8(True) @@ -508,6 +516,8 @@ self.__encodingChanged(editor.encoding, propagate=False) self.__spellLanguageChanged(editor.getSpellingLanguage(), propagate=False) + # link the warnings to the original editor + self.warnings = editor.warnings self.setAcceptDrops(True) @@ -1759,7 +1769,7 @@ pyVer = Utilities.determinePythonVersion( filename, self.text(0), self) language = "Python{0}".format(pyVer) - if language in ['Python3', 'MicroPython', 'Ruby', + if language in ['Python3', 'MicroPython', 'Cython', 'Ruby', 'JavaScript', 'YAML', 'JSON']: self.filetype = language else: @@ -2100,6 +2110,18 @@ return True return False + + def isCythonFile(self): + """ + Public method to return a flag indicating a Cython file. + + @return flag indicating a Cython file + @rtype bool + """ + if self.filetype == "Cython": + return True + + return False def isRubyFile(self): """ @@ -2667,7 +2689,7 @@ """ for handle in self.bookmarks: self.markerDeleteHandle(handle) - self.bookmarks = [] + self.bookmarks.clear() self.bookmarkToggled.emit(self) self.__markerMap.update() @@ -6084,7 +6106,7 @@ """ for handle in self.notcoveredMarkers: self.markerDeleteHandle(handle) - self.notcoveredMarkers = [] + self.notcoveredMarkers.clear() self.coverageMarkersShown.emit(False) self.showingNotcoveredMarkers = False self.__markerMap.update() @@ -6329,7 +6351,7 @@ line = self.markerLine(handle) + 1 self.toggleSyntaxError(line, 0, False) - self.syntaxerrors = {} + self.syntaxerrors.clear() self.syntaxerrorToggled.emit(self) def __showSyntaxError(self, line=-1): @@ -6542,7 +6564,7 @@ self.warnings[handle] = [] self.__setAnnotation(self.markerLine(handle)) self.markerDeleteHandle(handle) - self.warnings = {} + self.warnings.clear() self.syntaxerrorToggled.emit(self) self.__markerMap.update() @@ -7267,7 +7289,7 @@ # clear breakpoint markers for handle in list(self.breaks.keys()): self.markerDeleteHandle(handle) - self.breaks = {} + self.breaks.clear() if not os.path.exists(self.fileName): # close the file, if it was deleted in the background