diff --git a/scintilla/include/SciLexer.h b/scintilla/include/SciLexer.h index 8029a5bb41..5de0d11db8 100644 --- a/scintilla/include/SciLexer.h +++ b/scintilla/include/SciLexer.h @@ -1490,10 +1490,10 @@ #define SCE_SWIFT_COMMENTBLOCK 3 #define SCE_SWIFT_COMMENTBLOCKDOC 4 #define SCE_SWIFT_TASKMARKER 5 -#define SCE_SWIFT_FUNCTION 6 -#define SCE_SWIFT_OPERATOR 7 -#define SCE_SWIFT_OPERATOR2 8 -#define SCE_SWIFT_OPERATOR_PF 9 +#define SCE_SWIFT_OPERATOR 6 +#define SCE_SWIFT_OPERATOR2 7 +#define SCE_SWIFT_OPERATOR_PF 8 +#define SCE_SWIFT_NUMBER 9 #define SCE_SWIFT_ESCAPECHAR 10 #define SCE_SWIFT_STRING 11 #define SCE_SWIFT_TRIPLE_STRING 12 @@ -1501,19 +1501,20 @@ #define SCE_SWIFT_TRIPLE_STRING_ED 14 #define SCE_SWIFT_REGEX_ED 15 #define SCE_SWIFT_REGEX 16 -#define SCE_SWIFT_NUMBER 17 -#define SCE_SWIFT_DIRECTIVE 18 -#define SCE_SWIFT_IDENTIFIER 19 -#define SCE_SWIFT_IDENTIFIER_BT 20 -#define SCE_SWIFT_ATTRIBUTE 21 -#define SCE_SWIFT_VARIABLE 22 -#define SCE_SWIFT_WORD 23 -#define SCE_SWIFT_CLASS 24 -#define SCE_SWIFT_STRUCT 25 -#define SCE_SWIFT_PROTOCOL 26 -#define SCE_SWIFT_ENUM 27 +#define SCE_SWIFT_DIRECTIVE 17 +#define SCE_SWIFT_IDENTIFIER 18 +#define SCE_SWIFT_IDENTIFIER_BT 19 +#define SCE_SWIFT_ATTRIBUTE 20 +#define SCE_SWIFT_VARIABLE 21 +#define SCE_SWIFT_WORD 22 +#define SCE_SWIFT_CLASS 23 +#define SCE_SWIFT_STRUCT 24 +#define SCE_SWIFT_PROTOCOL 25 +#define SCE_SWIFT_ENUM 26 +#define SCE_SWIFT_MACRO 27 #define SCE_SWIFT_FUNCTION_DEFINITION 28 -#define SCE_SWIFT_LABEL 29 +#define SCE_SWIFT_FUNCTION 29 +#define SCE_SWIFT_LABEL 30 #define SCE_JS_DEFAULT 0 #define SCE_JS_COMMENTLINE 1 #define SCE_JS_COMMENTLINEDOC 2 diff --git a/scintilla/include/SciLexer.iface b/scintilla/include/SciLexer.iface index 556d492bdb..f76e4040eb 100644 --- a/scintilla/include/SciLexer.iface +++ b/scintilla/include/SciLexer.iface @@ -2788,10 +2788,10 @@ val SCE_SWIFT_COMMENTLINEDOC= val SCE_SWIFT_COMMENTBLOCK= val SCE_SWIFT_COMMENTBLOCKDOC= val SCE_SWIFT_TASKMARKER= -val SCE_SWIFT_FUNCTION= val SCE_SWIFT_OPERATOR= val SCE_SWIFT_OPERATOR2= val SCE_SWIFT_OPERATOR_PF= +val SCE_SWIFT_NUMBER= val SCE_SWIFT_ESCAPECHAR= val SCE_SWIFT_STRING=11 val SCE_SWIFT_TRIPLE_STRING=12 @@ -2799,7 +2799,6 @@ val SCE_SWIFT_STRING_ED=13 val SCE_SWIFT_TRIPLE_STRING_ED=14 val SCE_SWIFT_REGEX_ED= val SCE_SWIFT_REGEX= -val SCE_SWIFT_NUMBER= val SCE_SWIFT_DIRECTIVE= val SCE_SWIFT_IDENTIFIER= val SCE_SWIFT_IDENTIFIER_BT= @@ -2810,7 +2809,9 @@ val SCE_SWIFT_CLASS= val SCE_SWIFT_STRUCT= val SCE_SWIFT_PROTOCOL= val SCE_SWIFT_ENUM= +val SCE_SWIFT_MACRO= val SCE_SWIFT_FUNCTION_DEFINITION= +val SCE_SWIFT_FUNCTION= val SCE_SWIFT_LABEL= # Lexical states for SCLEX_JAVASCRIPT lex JavaScript=SCLEX_JAVASCRIPT SCE_JS_ SCE_JSX_ diff --git a/scintilla/lexers/LexSwift.cxx b/scintilla/lexers/LexSwift.cxx index 775de2091b..6802320691 100644 --- a/scintilla/lexers/LexSwift.cxx +++ b/scintilla/lexers/LexSwift.cxx @@ -64,7 +64,7 @@ constexpr bool IsEscapeSequence(int ch) noexcept { constexpr bool FollowExpression(int chPrevNonWhite, int stylePrevNonWhite) noexcept { return chPrevNonWhite == ')' || chPrevNonWhite == ']' - || (stylePrevNonWhite >= SCE_SWIFT_OPERATOR_PF && stylePrevNonWhite <= SCE_SWIFT_NUMBER) + || (stylePrevNonWhite >= SCE_SWIFT_OPERATOR_PF && stylePrevNonWhite < SCE_SWIFT_DIRECTIVE) || IsIdentifierCharEx(chPrevNonWhite); } @@ -186,8 +186,7 @@ void ColouriseSwiftDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initS sc.GetCurrent(s, sizeof(s)); if (sc.state == SCE_SWIFT_DIRECTIVE) { if (!keywordLists[KeywordIndex_Directive].InListPrefixed(s + 1, '(')) { - // required for code folding - sc.ChangeState(SCE_SWIFT_DEFAULT); + sc.ChangeState(SCE_SWIFT_MACRO); } } else if (keywordLists[KeywordIndex_Keyword].InList(s)) { sc.ChangeState(SCE_SWIFT_WORD); diff --git a/src/EditLexers/stlSwift.c b/src/EditLexers/stlSwift.c index 6167fbb617..ab72408924 100644 --- a/src/EditLexers/stlSwift.c +++ b/src/EditLexers/stlSwift.c @@ -51,6 +51,7 @@ static EDITSTYLE Styles_Swift[] = { { SCE_SWIFT_STRUCT, NP2StyleX_Structure, L"fore:#0080FF" }, { SCE_SWIFT_PROTOCOL, NP2StyleX_Protocol, L"bold; fore:#1E90FF" }, { SCE_SWIFT_ENUM, NP2StyleX_Enumeration, L"fore:#FF8000" }, + { SCE_SWIFT_MACRO, NP2StyleX_Macro, L"fore:#808000" }, { SCE_SWIFT_FUNCTION_DEFINITION, NP2StyleX_FunctionDefinition, L"bold; fore:#A46000" }, { SCE_SWIFT_FUNCTION, NP2StyleX_Function, L"fore:#A46000" }, { MULTI_STYLE(SCE_SWIFT_COMMENTBLOCK, SCE_SWIFT_COMMENTLINE, 0, 0), NP2StyleX_Comment, L"fore:#608060" },