From 85d94afc99b132abccad4b2822e75962020488d9 Mon Sep 17 00:00:00 2001 From: Gary Wang Date: Sun, 1 Feb 2026 16:59:54 +0800 Subject: [PATCH] better lexer colors --- documentmanager.cpp | 2 +- sciedit.cpp | 83 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 83 insertions(+), 2 deletions(-) diff --git a/documentmanager.cpp b/documentmanager.cpp index 70348c0..6d6aaf6 100644 --- a/documentmanager.cpp +++ b/documentmanager.cpp @@ -285,7 +285,7 @@ QString DocumentManager::detectLanguageFromExtension(const QString &filePath) return QStringLiteral("cmake"); } - if (extension == QStringLiteral("yaml")) { + if (extension == QStringLiteral("yaml") || extension == QStringLiteral("yml")) { return QStringLiteral("yaml"); } diff --git a/sciedit.cpp b/sciedit.cpp index 2d44f78..9753edf 100644 --- a/sciedit.cpp +++ b/sciedit.cpp @@ -161,6 +161,8 @@ void SciEdit::applyLexerStyles() const QColor docComment = dark ? QColor(0x60, 0x80, 0x4f) : QColor(0x00, 0x80, 0x00); const QColor keyword = dark ? QColor(0x56, 0x9c, 0xd6) : QColor(0x00, 0x00, 0xff); const QColor type = dark ? QColor(0x4e, 0xc9, 0xb0) : QColor(0x2b, 0x91, 0xaf); + const QColor identifier = dark ? QColor(0x9c, 0xdc, 0xfe) : QColor(0x00, 0x10, 0x80); + const QColor function = dark ? QColor(0xdc, 0xdc, 0xaa) : QColor(0x79, 0x59, 0x00); const QColor number = dark ? QColor(0xb5, 0xce, 0xa8) : QColor(0x09, 0x86, 0x58); const QColor string = dark ? QColor(0xce, 0x91, 0x78) : QColor(0xa3, 0x15, 0x15); const QColor preprocessor = dark ? QColor(0xc5, 0x86, 0xc0) : QColor(0xaf, 0x00, 0xdb); @@ -181,63 +183,142 @@ void SciEdit::applyLexerStyles() setFore(SCE_C_COMMENTLINEDOC, docComment); setFore(SCE_C_COMMENTDOCKEYWORD, docComment); setFore(SCE_C_COMMENTDOCKEYWORDERROR, docComment); + setFore(SCE_C_PREPROCESSORCOMMENT, comment); + setFore(SCE_C_PREPROCESSORCOMMENTDOC, docComment); setFore(SCE_C_NUMBER, number); setFore(SCE_C_STRING, string); setFore(SCE_C_CHARACTER, string); + setFore(SCE_C_STRINGEOL, string); + setFore(SCE_C_VERBATIM, string); + setFore(SCE_C_STRINGRAW, string); + setFore(SCE_C_TRIPLEVERBATIM, string); + setFore(SCE_C_HASHQUOTEDSTRING, string); + setFore(SCE_C_USERLITERAL, string); setFore(SCE_C_PREPROCESSOR, preprocessor); setFore(SCE_C_WORD, keyword); setBold(SCE_C_WORD, true); setFore(SCE_C_WORD2, type); setBold(SCE_C_WORD2, true); + setFore(SCE_C_GLOBALCLASS, type); + setFore(SCE_C_IDENTIFIER, identifier); + setFore(SCE_C_ESCAPESEQUENCE, preprocessor); } else if (m_lexerName == QStringLiteral("python")) { setFore(SCE_P_COMMENTLINE, comment); + setFore(SCE_P_COMMENTBLOCK, comment); setFore(SCE_P_NUMBER, number); setFore(SCE_P_STRING, string); setFore(SCE_P_CHARACTER, string); + setFore(SCE_P_TRIPLE, string); + setFore(SCE_P_TRIPLEDOUBLE, string); + setFore(SCE_P_FSTRING, string); + setFore(SCE_P_FCHARACTER, string); + setFore(SCE_P_FTRIPLE, string); + setFore(SCE_P_FTRIPLEDOUBLE, string); + setFore(SCE_P_STRINGEOL, string); setFore(SCE_P_WORD, keyword); setBold(SCE_P_WORD, true); setFore(SCE_P_WORD2, type); setBold(SCE_P_WORD2, true); setFore(SCE_P_DECORATOR, preprocessor); setFore(SCE_P_CLASSNAME, type); - setFore(SCE_P_DEFNAME, type); + setBold(SCE_P_CLASSNAME, true); + setFore(SCE_P_DEFNAME, function); + setBold(SCE_P_DEFNAME, true); + setFore(SCE_P_ATTRIBUTE, attr); + setFore(SCE_P_OPERATOR, preprocessor); + setFore(SCE_P_IDENTIFIER, identifier); } else if (m_lexerName == QStringLiteral("hypertext")) { setFore(SCE_H_COMMENT, comment); setFore(SCE_H_TAG, tag); setFore(SCE_H_TAGUNKNOWN, tag); + setFore(SCE_H_TAGEND, tag); setFore(SCE_H_ATTRIBUTE, attr); setFore(SCE_H_ATTRIBUTEUNKNOWN, attr); setFore(SCE_H_NUMBER, number); setFore(SCE_H_DOUBLESTRING, string); setFore(SCE_H_SINGLESTRING, string); + setFore(SCE_H_VALUE, string); setFore(SCE_H_ENTITY, preprocessor); } else if (m_lexerName == QStringLiteral("xml")) { setFore(SCE_H_COMMENT, comment); setFore(SCE_H_TAG, tag); setFore(SCE_H_TAGUNKNOWN, tag); + setFore(SCE_H_TAGEND, tag); setFore(SCE_H_ATTRIBUTE, attr); setFore(SCE_H_ATTRIBUTEUNKNOWN, attr); setFore(SCE_H_NUMBER, number); setFore(SCE_H_DOUBLESTRING, string); setFore(SCE_H_SINGLESTRING, string); + setFore(SCE_H_VALUE, string); setFore(SCE_H_ENTITY, preprocessor); } else if (m_lexerName == QStringLiteral("json")) { setFore(SCE_JSON_NUMBER, number); setFore(SCE_JSON_STRING, string); + setFore(SCE_JSON_STRINGEOL, string); setFore(SCE_JSON_PROPERTYNAME, attr); + setFore(SCE_JSON_KEYWORD, keyword); + setFore(SCE_JSON_LDKEYWORD, keyword); + setFore(SCE_JSON_URI, string); + setFore(SCE_JSON_COMPACTIRI, string); + setFore(SCE_JSON_ESCAPESEQUENCE, preprocessor); setFore(SCE_JSON_OPERATOR, preprocessor); setFore(SCE_JSON_LINECOMMENT, comment); setFore(SCE_JSON_BLOCKCOMMENT, comment); + setFore(SCE_JSON_ERROR, preprocessor); } else if (m_lexerName == QStringLiteral("css")) { setFore(SCE_CSS_COMMENT, comment); setFore(SCE_CSS_CLASS, attr); setFore(SCE_CSS_ID, attr); setFore(SCE_CSS_TAG, tag); setFore(SCE_CSS_ATTRIBUTE, attr); + setFore(SCE_CSS_PSEUDOCLASS, attr); + setFore(SCE_CSS_PSEUDOELEMENT, attr); + setFore(SCE_CSS_EXTENDED_PSEUDOCLASS, attr); + setFore(SCE_CSS_EXTENDED_PSEUDOELEMENT, attr); setFore(SCE_CSS_DOUBLESTRING, string); setFore(SCE_CSS_SINGLESTRING, string); setFore(SCE_CSS_VALUE, string); setFore(SCE_CSS_IDENTIFIER, keyword); setBold(SCE_CSS_IDENTIFIER, true); + setFore(SCE_CSS_IDENTIFIER2, keyword); + setFore(SCE_CSS_IDENTIFIER3, keyword); + setFore(SCE_CSS_OPERATOR, preprocessor); + setFore(SCE_CSS_IMPORTANT, keyword); + setBold(SCE_CSS_IMPORTANT, true); + setFore(SCE_CSS_DIRECTIVE, keyword); + setBold(SCE_CSS_DIRECTIVE, true); + setFore(SCE_CSS_GROUP_RULE, keyword); + setBold(SCE_CSS_GROUP_RULE, true); + setFore(SCE_CSS_VARIABLE, identifier); + } else if (m_lexerName == QStringLiteral("yaml")) { + setFore(SCE_YAML_COMMENT, comment); + setFore(SCE_YAML_IDENTIFIER, identifier); + setFore(SCE_YAML_KEYWORD, attr); + setFore(SCE_YAML_NUMBER, number); + setFore(SCE_YAML_REFERENCE, tag); + setFore(SCE_YAML_DOCUMENT, tag); + setFore(SCE_YAML_TEXT, string); + setFore(SCE_YAML_OPERATOR, preprocessor); + } else if (m_lexerName == QStringLiteral("cmake")) { + setFore(SCE_CMAKE_COMMENT, comment); + setFore(SCE_CMAKE_NUMBER, number); + setFore(SCE_CMAKE_VARIABLE, identifier); + setFore(SCE_CMAKE_STRINGDQ, string); + setFore(SCE_CMAKE_STRINGLQ, string); + setFore(SCE_CMAKE_STRINGRQ, string); + setFore(SCE_CMAKE_STRINGVAR, identifier); + setFore(SCE_CMAKE_COMMANDS, function); + setBold(SCE_CMAKE_COMMANDS, true); + setFore(SCE_CMAKE_USERDEFINED, function); + setBold(SCE_CMAKE_USERDEFINED, true); + setFore(SCE_CMAKE_MACRODEF, function); + setBold(SCE_CMAKE_MACRODEF, true); + setFore(SCE_CMAKE_WHILEDEF, keyword); + setBold(SCE_CMAKE_WHILEDEF, true); + setFore(SCE_CMAKE_FOREACHDEF, keyword); + setBold(SCE_CMAKE_FOREACHDEF, true); + setFore(SCE_CMAKE_IFDEFINEDEF, keyword); + setBold(SCE_CMAKE_IFDEFINEDEF, true); + setFore(SCE_CMAKE_PARAMETERS, attr); } }