--- a/src/eric7/QScintilla/Lexers/LexerCPP.py Wed Jul 13 11:16:20 2022 +0200 +++ b/src/eric7/QScintilla/Lexers/LexerCPP.py Wed Jul 13 14:55:47 2022 +0200 @@ -19,28 +19,22 @@ """ Subclass to implement some additional lexer dependant methods. """ + def __init__(self, parent=None, caseInsensitiveKeywords=False): """ Constructor - + @param parent parent widget of this lexer @param caseInsensitiveKeywords flag indicating keywords are case insensitive (boolean) """ QsciLexerCPP.__init__(self, parent, caseInsensitiveKeywords) SubstyledLexer.__init__(self) - + self.commentString = "//" - self.streamCommentString = { - 'start': '/* ', - 'end': ' */' - } - self.boxCommentString = { - 'start': '/* ', - 'middle': ' * ', - 'end': ' */' - } - + self.streamCommentString = {"start": "/* ", "end": " */"} + self.boxCommentString = {"start": "/* ", "middle": " * ", "end": " */"} + self.keywordSetDescriptions = [ self.tr("Primary keywords and identifiers"), self.tr("Secondary keywords and identifiers"), @@ -49,17 +43,17 @@ self.tr("Preprocessor definitions"), self.tr("Task marker and error marker keywords"), ] - + ############################################################## ## default sub-style definitions ############################################################## - + diffToSecondary = 0x40 # This may need to be changed to be in line with Scintilla C++ lexer. - + # list of style numbers, that support sub-styling self.baseStyles = [11, 17, 11 + diffToSecondary, 17 + diffToSecondary] - + self.defaultSubStyles = { 11: { 0: { @@ -67,7 +61,7 @@ "Words": "std map string vector", "Style": { "fore": 0xEE00AA, - } + }, }, }, 17: { @@ -76,26 +70,27 @@ "Words": "check", "Style": { "fore": 0x00AAEE, - } + }, }, }, - 11 + diffToSecondary: { + 11 + + diffToSecondary: { 0: { "Description": self.tr("Inactive additional identifier"), "Words": "std map string vector", "Style": { "fore": 0xBB6666, - } + }, }, }, - 17 + diffToSecondary: { + 17 + + diffToSecondary: { 0: { - "Description": self.tr( - "Inactive additional JavaDoc keyword"), + "Description": self.tr("Inactive additional JavaDoc keyword"), "Words": "check", "Style": { "fore": 0x6699AA, - } + }, }, }, } @@ -117,70 +112,77 @@ with contextlib.suppress(AttributeError): self.setDollarsAllowed(Preferences.getEditor("CppDollarsAllowed")) with contextlib.suppress(AttributeError): - self.setStylePreprocessor( - Preferences.getEditor("CppStylePreprocessor")) + self.setStylePreprocessor(Preferences.getEditor("CppStylePreprocessor")) with contextlib.suppress(AttributeError): self.setHighlightTripleQuotedStrings( - Preferences.getEditor("CppHighlightTripleQuotedStrings")) + Preferences.getEditor("CppHighlightTripleQuotedStrings") + ) with contextlib.suppress(AttributeError): self.setHighlightHashQuotedStrings( - Preferences.getEditor("CppHighlightHashQuotedStrings")) + Preferences.getEditor("CppHighlightHashQuotedStrings") + ) with contextlib.suppress(AttributeError): self.setHighlightBackQuotedStrings( - Preferences.getEditor("CppHighlightBackQuotedStrings")) + Preferences.getEditor("CppHighlightBackQuotedStrings") + ) with contextlib.suppress(AttributeError): self.setHighlightEscapeSequences( - Preferences.getEditor("CppHighlightEscapeSequences")) + Preferences.getEditor("CppHighlightEscapeSequences") + ) with contextlib.suppress(AttributeError): self.setVerbatimStringEscapeSequencesAllowed( - Preferences.getEditor( - "CppVerbatimStringEscapeSequencesAllowed")) - + Preferences.getEditor("CppVerbatimStringEscapeSequencesAllowed") + ) + def autoCompletionWordSeparators(self): """ Public method to return the list of separators for autocompletion. - + @return list of separators (list of strings) """ - return ['::', '->', '.'] - + return ["::", "->", "."] + def isCommentStyle(self, style): """ Public method to check, if a style is a comment style. - + @param style style to check (integer) @return flag indicating a comment style (boolean) """ - return style in [QsciLexerCPP.Comment, - QsciLexerCPP.CommentDoc, - QsciLexerCPP.CommentLine, - QsciLexerCPP.CommentLineDoc] - + return style in [ + QsciLexerCPP.Comment, + QsciLexerCPP.CommentDoc, + QsciLexerCPP.CommentLine, + QsciLexerCPP.CommentLineDoc, + ] + def isStringStyle(self, style): """ Public method to check, if a style is a string style. - + @param style style to check (integer) @return flag indicating a string style (boolean) """ - return style in [QsciLexerCPP.DoubleQuotedString, - QsciLexerCPP.SingleQuotedString, - QsciLexerCPP.UnclosedString, - QsciLexerCPP.VerbatimString] - + return style in [ + QsciLexerCPP.DoubleQuotedString, + QsciLexerCPP.SingleQuotedString, + QsciLexerCPP.UnclosedString, + QsciLexerCPP.VerbatimString, + ] + def defaultKeywords(self, kwSet): """ Public method to get the default keywords. - + @param kwSet number of the keyword set (integer) @return string giving the keywords (string) or None """ return QsciLexerCPP.keywords(self, kwSet) - + def maximumKeywordSet(self): """ Public method to get the maximum keyword set. - + @return maximum keyword set (integer) """ return 4