better lexer colors

This commit is contained in:
2026-02-01 16:59:54 +08:00
parent d399c454ff
commit 85d94afc99
2 changed files with 83 additions and 2 deletions

View File

@@ -285,7 +285,7 @@ QString DocumentManager::detectLanguageFromExtension(const QString &filePath)
return QStringLiteral("cmake"); return QStringLiteral("cmake");
} }
if (extension == QStringLiteral("yaml")) { if (extension == QStringLiteral("yaml") || extension == QStringLiteral("yml")) {
return QStringLiteral("yaml"); return QStringLiteral("yaml");
} }

View File

@@ -161,6 +161,8 @@ void SciEdit::applyLexerStyles()
const QColor docComment = dark ? QColor(0x60, 0x80, 0x4f) : QColor(0x00, 0x80, 0x00); 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 keyword = dark ? QColor(0x56, 0x9c, 0xd6) : QColor(0x00, 0x00, 0xff);
const QColor type = dark ? QColor(0x4e, 0xc9, 0xb0) : QColor(0x2b, 0x91, 0xaf); 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 number = dark ? QColor(0xb5, 0xce, 0xa8) : QColor(0x09, 0x86, 0x58);
const QColor string = dark ? QColor(0xce, 0x91, 0x78) : QColor(0xa3, 0x15, 0x15); const QColor string = dark ? QColor(0xce, 0x91, 0x78) : QColor(0xa3, 0x15, 0x15);
const QColor preprocessor = dark ? QColor(0xc5, 0x86, 0xc0) : QColor(0xaf, 0x00, 0xdb); 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_COMMENTLINEDOC, docComment);
setFore(SCE_C_COMMENTDOCKEYWORD, docComment); setFore(SCE_C_COMMENTDOCKEYWORD, docComment);
setFore(SCE_C_COMMENTDOCKEYWORDERROR, docComment); setFore(SCE_C_COMMENTDOCKEYWORDERROR, docComment);
setFore(SCE_C_PREPROCESSORCOMMENT, comment);
setFore(SCE_C_PREPROCESSORCOMMENTDOC, docComment);
setFore(SCE_C_NUMBER, number); setFore(SCE_C_NUMBER, number);
setFore(SCE_C_STRING, string); setFore(SCE_C_STRING, string);
setFore(SCE_C_CHARACTER, 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_PREPROCESSOR, preprocessor);
setFore(SCE_C_WORD, keyword); setFore(SCE_C_WORD, keyword);
setBold(SCE_C_WORD, true); setBold(SCE_C_WORD, true);
setFore(SCE_C_WORD2, type); setFore(SCE_C_WORD2, type);
setBold(SCE_C_WORD2, true); 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")) { } else if (m_lexerName == QStringLiteral("python")) {
setFore(SCE_P_COMMENTLINE, comment); setFore(SCE_P_COMMENTLINE, comment);
setFore(SCE_P_COMMENTBLOCK, comment);
setFore(SCE_P_NUMBER, number); setFore(SCE_P_NUMBER, number);
setFore(SCE_P_STRING, string); setFore(SCE_P_STRING, string);
setFore(SCE_P_CHARACTER, 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); setFore(SCE_P_WORD, keyword);
setBold(SCE_P_WORD, true); setBold(SCE_P_WORD, true);
setFore(SCE_P_WORD2, type); setFore(SCE_P_WORD2, type);
setBold(SCE_P_WORD2, true); setBold(SCE_P_WORD2, true);
setFore(SCE_P_DECORATOR, preprocessor); setFore(SCE_P_DECORATOR, preprocessor);
setFore(SCE_P_CLASSNAME, type); 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")) { } else if (m_lexerName == QStringLiteral("hypertext")) {
setFore(SCE_H_COMMENT, comment); setFore(SCE_H_COMMENT, comment);
setFore(SCE_H_TAG, tag); setFore(SCE_H_TAG, tag);
setFore(SCE_H_TAGUNKNOWN, tag); setFore(SCE_H_TAGUNKNOWN, tag);
setFore(SCE_H_TAGEND, tag);
setFore(SCE_H_ATTRIBUTE, attr); setFore(SCE_H_ATTRIBUTE, attr);
setFore(SCE_H_ATTRIBUTEUNKNOWN, attr); setFore(SCE_H_ATTRIBUTEUNKNOWN, attr);
setFore(SCE_H_NUMBER, number); setFore(SCE_H_NUMBER, number);
setFore(SCE_H_DOUBLESTRING, string); setFore(SCE_H_DOUBLESTRING, string);
setFore(SCE_H_SINGLESTRING, string); setFore(SCE_H_SINGLESTRING, string);
setFore(SCE_H_VALUE, string);
setFore(SCE_H_ENTITY, preprocessor); setFore(SCE_H_ENTITY, preprocessor);
} else if (m_lexerName == QStringLiteral("xml")) { } else if (m_lexerName == QStringLiteral("xml")) {
setFore(SCE_H_COMMENT, comment); setFore(SCE_H_COMMENT, comment);
setFore(SCE_H_TAG, tag); setFore(SCE_H_TAG, tag);
setFore(SCE_H_TAGUNKNOWN, tag); setFore(SCE_H_TAGUNKNOWN, tag);
setFore(SCE_H_TAGEND, tag);
setFore(SCE_H_ATTRIBUTE, attr); setFore(SCE_H_ATTRIBUTE, attr);
setFore(SCE_H_ATTRIBUTEUNKNOWN, attr); setFore(SCE_H_ATTRIBUTEUNKNOWN, attr);
setFore(SCE_H_NUMBER, number); setFore(SCE_H_NUMBER, number);
setFore(SCE_H_DOUBLESTRING, string); setFore(SCE_H_DOUBLESTRING, string);
setFore(SCE_H_SINGLESTRING, string); setFore(SCE_H_SINGLESTRING, string);
setFore(SCE_H_VALUE, string);
setFore(SCE_H_ENTITY, preprocessor); setFore(SCE_H_ENTITY, preprocessor);
} else if (m_lexerName == QStringLiteral("json")) { } else if (m_lexerName == QStringLiteral("json")) {
setFore(SCE_JSON_NUMBER, number); setFore(SCE_JSON_NUMBER, number);
setFore(SCE_JSON_STRING, string); setFore(SCE_JSON_STRING, string);
setFore(SCE_JSON_STRINGEOL, string);
setFore(SCE_JSON_PROPERTYNAME, attr); 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_OPERATOR, preprocessor);
setFore(SCE_JSON_LINECOMMENT, comment); setFore(SCE_JSON_LINECOMMENT, comment);
setFore(SCE_JSON_BLOCKCOMMENT, comment); setFore(SCE_JSON_BLOCKCOMMENT, comment);
setFore(SCE_JSON_ERROR, preprocessor);
} else if (m_lexerName == QStringLiteral("css")) { } else if (m_lexerName == QStringLiteral("css")) {
setFore(SCE_CSS_COMMENT, comment); setFore(SCE_CSS_COMMENT, comment);
setFore(SCE_CSS_CLASS, attr); setFore(SCE_CSS_CLASS, attr);
setFore(SCE_CSS_ID, attr); setFore(SCE_CSS_ID, attr);
setFore(SCE_CSS_TAG, tag); setFore(SCE_CSS_TAG, tag);
setFore(SCE_CSS_ATTRIBUTE, attr); 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_DOUBLESTRING, string);
setFore(SCE_CSS_SINGLESTRING, string); setFore(SCE_CSS_SINGLESTRING, string);
setFore(SCE_CSS_VALUE, string); setFore(SCE_CSS_VALUE, string);
setFore(SCE_CSS_IDENTIFIER, keyword); setFore(SCE_CSS_IDENTIFIER, keyword);
setBold(SCE_CSS_IDENTIFIER, true); 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);
} }
} }