diff --git a/scintilla/lexers/LexAsymptote.cxx b/scintilla/lexers/LexAsymptote.cxx index fe68a32d13..e28745747f 100644 --- a/scintilla/lexers/LexAsymptote.cxx +++ b/scintilla/lexers/LexAsymptote.cxx @@ -230,12 +230,6 @@ struct FoldLineState { } }; -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_ASY_STRING_SQ - || style == SCE_ASY_STRING_DQ - || style == SCE_ASY_ESCAPECHAR; -} - void FoldAsyDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -266,18 +260,12 @@ void FoldAsyDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, L switch (style) { case SCE_ASY_COMMENTBLOCK: - if (style != stylePrev) { - levelNext++; - } else if (style != styleNext) { - levelNext--; - } - break; - case SCE_ASY_STRING_SQ: case SCE_ASY_STRING_DQ: - if (!IsMultilineStringStyle(stylePrev)) { + if (style != stylePrev) { levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { + } + if (style != styleNext) { levelNext--; } break; diff --git a/scintilla/lexers/LexAutoHotkey.cxx b/scintilla/lexers/LexAutoHotkey.cxx index 8ae80c3b1b..e2cb311377 100644 --- a/scintilla/lexers/LexAutoHotkey.cxx +++ b/scintilla/lexers/LexAutoHotkey.cxx @@ -754,24 +754,6 @@ constexpr int GetLineCommentState(int lineState) noexcept { return lineState & AHKLineStateMaskLineComment; } -constexpr bool IsStreamCommentStyle(int style) noexcept { - return style == SCE_AHK_COMMENTBLOCK - || style == SCE_AHK_DIRECTIVE_AT - || style == SCE_AHK_TASKMARKER; -} - -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_AHK_SECTION_SQ - || style == SCE_AHK_SECTION_DQ - || style == SCE_AHK_SECTION_NQ - || style == SCE_AHK_SECTION_COMMENT - || style == SCE_AHK_SECTION_OPTION - || style == SCE_AHK_ESCAPECHAR - || style == SCE_AHK_FORMAT_SPECIFIER - || style == SCE_AHK_SENTKEY - || style == SCE_AHK_DYNAMIC_VARIABLE; -} - void FoldAHKDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList /*keywordLists*/, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -802,19 +784,13 @@ void FoldAHKDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, L switch (style) { case SCE_AHK_COMMENTBLOCK: - if (!IsStreamCommentStyle(stylePrev)) { - levelNext++; - } else if (!IsStreamCommentStyle(styleNext)) { - levelNext--; - } - break; - case SCE_AHK_SECTION_SQ: case SCE_AHK_SECTION_DQ: case SCE_AHK_SECTION_NQ: - if (!IsMultilineStringStyle(stylePrev)) { + if (style != stylePrev) { levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { + } + if (style != styleNext) { levelNext--; } break; diff --git a/scintilla/lexers/LexCSharp.cxx b/scintilla/lexers/LexCSharp.cxx index 3d4335cd82..a429e83f39 100644 --- a/scintilla/lexers/LexCSharp.cxx +++ b/scintilla/lexers/LexCSharp.cxx @@ -778,24 +778,6 @@ struct FoldLineState { } }; -constexpr bool IsStreamCommentStyle(int style) noexcept { - return style == SCE_CSHARP_COMMENTBLOCK - || style == SCE_CSHARP_COMMENTBLOCKDOC - || style == SCE_CSHARP_COMMENTTAG_XML - || style == SCE_CSHARP_TASKMARKER; -} - -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_CSHARP_VERBATIM_STRING - || style == SCE_CSHARP_INTERPOLATED_VERBATIM_STRING - || style == SCE_CSHARP_RAWSTRING_ML - || style == SCE_CSHARP_INTERPOLATED_RAWSTRING_ML - || style == SCE_CSHARP_OPERATOR2 - || style == SCE_CSHARP_ESCAPECHAR - || style == SCE_CSHARP_FORMAT_SPECIFIER - || style == SCE_CSHARP_PLACEHOLDER; -} - void FoldCSharpDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -831,25 +813,20 @@ void FoldCSharpDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle switch (style) { case SCE_CSHARP_COMMENTBLOCK: case SCE_CSHARP_COMMENTBLOCKDOC: - if (!IsStreamCommentStyle(stylePrev)) { - levelNext++; - } else if (!IsStreamCommentStyle(styleNext)) { - levelNext--; - } - break; - case SCE_CSHARP_VERBATIM_STRING: case SCE_CSHARP_INTERPOLATED_VERBATIM_STRING: case SCE_CSHARP_RAWSTRING_ML: case SCE_CSHARP_INTERPOLATED_RAWSTRING_ML: - if (!IsMultilineStringStyle(stylePrev)) { + if (style != stylePrev) { levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { + } + if (style != styleNext) { levelNext--; } break; - case SCE_CSHARP_OPERATOR: { + case SCE_CSHARP_OPERATOR: + case SCE_CSHARP_OPERATOR2: { const char ch = styler[startPos]; if (ch == '{' || ch == '[' || ch == '(') { levelNext++; diff --git a/scintilla/lexers/LexD.cxx b/scintilla/lexers/LexD.cxx index fb3389d1df..aab83e8d2b 100644 --- a/scintilla/lexers/LexD.cxx +++ b/scintilla/lexers/LexD.cxx @@ -642,25 +642,6 @@ struct FoldLineState { } }; -constexpr bool IsStreamCommentStyle(int style) noexcept { - return style == SCE_D_COMMENTBLOCK - || style == SCE_D_COMMENTBLOCKDOC - || style == SCE_D_COMMENTDOCWORD - || style == SCE_D_COMMENTDOCMACRO - || style == SCE_D_TASKMARKER; -} - -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_D_STRING - || style == SCE_D_HEXSTRING - || style == SCE_D_RAWSTRING - || style == SCE_D_STRING_BT - || style == SCE_D_DELIMITED_STRING - || style == SCE_D_ESCAPECHAR - || style == SCE_D_DELIMITED_ID - || style == SCE_D_FORMAT_SPECIFIER; -} - void FoldDDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -695,9 +676,15 @@ void FoldDDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, Lex switch (style) { case SCE_D_COMMENTBLOCKDOC: case SCE_D_COMMENTBLOCK: - if (!IsStreamCommentStyle(stylePrev)) { + case SCE_D_STRING: + case SCE_D_HEXSTRING: + case SCE_D_RAWSTRING: + case SCE_D_STRING_BT: + case SCE_D_DELIMITED_STRING: + if (style != stylePrev) { levelNext++; - } else if (!IsStreamCommentStyle(styleNext)) { + } + if (style != styleNext) { levelNext--; } break; @@ -713,18 +700,6 @@ void FoldDDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, Lex } } break; - case SCE_D_STRING: - case SCE_D_HEXSTRING: - case SCE_D_RAWSTRING: - case SCE_D_STRING_BT: - case SCE_D_DELIMITED_STRING: - if (!IsMultilineStringStyle(stylePrev)) { - levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { - levelNext--; - } - break; - case SCE_D_OPERATOR: if (ch == '{' || ch == '[' || ch == '(') { levelNext++; diff --git a/scintilla/lexers/LexDart.cxx b/scintilla/lexers/LexDart.cxx index a0bf77100f..4cea73600d 100644 --- a/scintilla/lexers/LexDart.cxx +++ b/scintilla/lexers/LexDart.cxx @@ -454,14 +454,6 @@ struct FoldLineState { } }; -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_DART_TRIPLE_STRING_SQ - || style == SCE_DART_TRIPLE_STRING_DQ - || style == SCE_DART_OPERATOR2 - || style == SCE_DART_VARIABLE2 - || style == SCE_DART_ESCAPECHAR; -} - void FoldDartDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -507,23 +499,18 @@ void FoldDartDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, case SCE_DART_TRIPLE_RAWSTRING_SQ: case SCE_DART_TRIPLE_RAWSTRING_DQ: - if (style != stylePrev) { - levelNext++; - } else if (style != styleNext) { - levelNext--; - } - break; - case SCE_DART_TRIPLE_STRING_SQ: case SCE_DART_TRIPLE_STRING_DQ: - if (!IsMultilineStringStyle(stylePrev)) { + if (style != stylePrev) { levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { + } + if (style != styleNext) { levelNext--; } break; case SCE_DART_OPERATOR: + case SCE_DART_OPERATOR2: if (ch == '{' || ch == '[' || ch == '(') { levelNext++; } else if (ch == '}' || ch == ']' || ch == ')') { diff --git a/scintilla/lexers/LexGo.cxx b/scintilla/lexers/LexGo.cxx index 7f6f777d65..650b4e65b7 100644 --- a/scintilla/lexers/LexGo.cxx +++ b/scintilla/lexers/LexGo.cxx @@ -545,17 +545,6 @@ constexpr int GetLineCommentState(int lineState) noexcept { return lineState & SimpleLineStateMaskLineComment; } -constexpr bool IsStreamCommentStyle(int style) noexcept { - return style == SCE_GO_COMMENTBLOCK - || style == SCE_GO_TASKMARKER; -} - -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_GO_RAW_STRING - || style == SCE_GO_ESCAPECHAR - || style == SCE_GO_FORMAT_SPECIFIER; -} - void FoldGoDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -586,17 +575,11 @@ void FoldGoDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, Le switch (style) { case SCE_GO_COMMENTBLOCK: - if (!IsStreamCommentStyle(stylePrev)) { - levelNext++; - } else if (!IsStreamCommentStyle(styleNext)) { - levelNext--; - } - break; - case SCE_GO_RAW_STRING: - if (!IsMultilineStringStyle(stylePrev)) { + if (style != stylePrev) { levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { + } + if (style != styleNext) { levelNext--; } break; diff --git a/scintilla/lexers/LexGroovy.cxx b/scintilla/lexers/LexGroovy.cxx index 2f626488b5..d60f14b618 100644 --- a/scintilla/lexers/LexGroovy.cxx +++ b/scintilla/lexers/LexGroovy.cxx @@ -571,24 +571,6 @@ struct FoldLineState { } }; -constexpr bool IsStreamCommentStyle(int style) noexcept { - return style == SCE_GROOVY_COMMENTBLOCK - || style == SCE_GROOVY_COMMENTBLOCKDOC - || style == SCE_GROOVY_COMMENTTAGAT - || style == SCE_GROOVY_COMMENTTAGHTML - || style == SCE_GROOVY_TASKMARKER; -} - -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_GROOVY_TRIPLE_STRING_SQ - || style == SCE_GROOVY_TRIPLE_STRING_DQ - || style == SCE_GROOVY_SLASHY_STRING - || style == SCE_GROOVY_DOLLAR_SLASHY - || style == SCE_GROOVY_OPERATOR2 - || style == SCE_GROOVY_VARIABLE - || style == SCE_GROOVY_ESCAPECHAR; -} - void FoldGroovyDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList /*keywordLists*/, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -620,25 +602,20 @@ void FoldGroovyDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle switch (style) { case SCE_GROOVY_COMMENTBLOCK: case SCE_GROOVY_COMMENTBLOCKDOC: - if (!IsStreamCommentStyle(stylePrev)) { - levelNext++; - } else if (!IsStreamCommentStyle(styleNext)) { - levelNext--; - } - break; - case SCE_GROOVY_TRIPLE_STRING_SQ: case SCE_GROOVY_TRIPLE_STRING_DQ: case SCE_GROOVY_SLASHY_STRING: case SCE_GROOVY_DOLLAR_SLASHY: - if (!IsMultilineStringStyle(stylePrev)) { + if (style != stylePrev) { levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { + } + if (style != styleNext) { levelNext--; } break; - case SCE_GROOVY_OPERATOR: { + case SCE_GROOVY_OPERATOR: + case SCE_GROOVY_OPERATOR2: { const char ch = styler[startPos - 1]; if (ch == '{' || ch == '[' || ch == '(') { levelNext++; diff --git a/scintilla/lexers/LexHaxe.cxx b/scintilla/lexers/LexHaxe.cxx index ee29c563b0..7141a369e1 100644 --- a/scintilla/lexers/LexHaxe.cxx +++ b/scintilla/lexers/LexHaxe.cxx @@ -377,21 +377,6 @@ struct FoldLineState { } }; -constexpr bool IsStreamCommentStyle(int style) noexcept { - return style == SCE_HAXE_COMMENTBLOCK - || style == SCE_HAXE_COMMENTBLOCKDOC - || style == SCE_HAXE_COMMENTTAGAT - || style == SCE_HAXE_TASKMARKER; -} - -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_HAXE_STRINGDQ - || style == SCE_HAXE_STRINGSQ - || style == SCE_HAXE_OPERATOR2 - || style == SCE_HAXE_VARIABLE2 - || style == SCE_HAXE_ESCAPECHAR; -} - void FoldHaxeDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -426,31 +411,19 @@ void FoldHaxeDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, switch (style) { case SCE_HAXE_COMMENTBLOCK: case SCE_HAXE_COMMENTBLOCKDOC: - if (!IsStreamCommentStyle(stylePrev)) { - levelNext++; - } else if (!IsStreamCommentStyle(styleNext)) { - levelNext--; - } - break; - case SCE_HAXE_REGEX: - if (style != stylePrev) { - levelNext++; - } else if (style != styleNext) { - levelNext--; - } - break; - case SCE_HAXE_STRINGSQ: case SCE_HAXE_STRINGDQ: - if (!IsMultilineStringStyle(stylePrev)) { + if (style != stylePrev) { levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { + } + if (style != styleNext) { levelNext--; } break; case SCE_HAXE_OPERATOR: + case SCE_HAXE_OPERATOR2: if (ch == '{' || ch == '[' || ch == '(') { levelNext++; } else if (ch == '}' || ch == ']' || ch == ')') { diff --git a/scintilla/lexers/LexJava.cxx b/scintilla/lexers/LexJava.cxx index d32f2c9c18..620f4aeace 100644 --- a/scintilla/lexers/LexJava.cxx +++ b/scintilla/lexers/LexJava.cxx @@ -579,23 +579,6 @@ struct FoldLineState { } }; -constexpr bool IsStreamCommentStyle(int style) noexcept { - return style == SCE_JAVA_COMMENTBLOCK - || style == SCE_JAVA_COMMENTBLOCKDOC - || style == SCE_JAVA_COMMENTTAGAT - || style == SCE_JAVA_COMMENTTAGHTML - || style == SCE_JAVA_TASKMARKER; -} - -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_JAVA_TRIPLE_STRING - || style == SCE_JAVA_TRIPLE_TEMPLATE - || style == SCE_JAVA_OPERATOR2 - || style == SCE_JAVA_ESCAPECHAR - || style == SCE_JAVA_FORMAT_SPECIFIER - || style == SCE_JAVA_PLACEHOLDER; -} - void FoldJavaDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList /*keywordLists*/, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -627,23 +610,18 @@ void FoldJavaDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, switch (style) { case SCE_JAVA_COMMENTBLOCK: case SCE_JAVA_COMMENTBLOCKDOC: - if (!IsStreamCommentStyle(stylePrev)) { - levelNext++; - } else if (!IsStreamCommentStyle(styleNext)) { - levelNext--; - } - break; - case SCE_JAVA_TRIPLE_STRING: case SCE_JAVA_TRIPLE_TEMPLATE: - if (!IsMultilineStringStyle(stylePrev)) { + if (style != stylePrev) { levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { + } + if (style != styleNext) { levelNext--; } break; - case SCE_JAVA_OPERATOR: { + case SCE_JAVA_OPERATOR: + case SCE_JAVA_OPERATOR2: { const char ch = styler[startPos - 1]; if (ch == '{' || ch == '[' || ch == '(') { levelNext++; diff --git a/scintilla/lexers/LexJavaScript.cxx b/scintilla/lexers/LexJavaScript.cxx index 226d3e33b9..c099f354ca 100644 --- a/scintilla/lexers/LexJavaScript.cxx +++ b/scintilla/lexers/LexJavaScript.cxx @@ -591,20 +591,6 @@ struct FoldLineState { } }; -constexpr bool IsStreamCommentStyle(int style) noexcept { - return style == SCE_JS_COMMENTBLOCK - || style == SCE_JS_COMMENTBLOCKDOC - || style == SCE_JS_COMMENTTAGAT - || style == SCE_JS_COMMENTTAGXML - || style == SCE_JS_TASKMARKER; -} - -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_JS_STRING_BT - || style == SCE_JS_OPERATOR2 - || style == SCE_JS_ESCAPECHAR; -} - void FoldJsDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList /*keywordLists*/, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -639,22 +625,17 @@ void FoldJsDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, Le switch (style) { case SCE_JS_COMMENTBLOCK: case SCE_JS_COMMENTBLOCKDOC: - if (!IsStreamCommentStyle(stylePrev)) { - levelNext++; - } else if (!IsStreamCommentStyle(styleNext)) { - levelNext--; - } - break; - case SCE_JS_STRING_BT: - if (!IsMultilineStringStyle(stylePrev)) { + if (style != stylePrev) { levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { + } + if (style != styleNext) { levelNext--; } break; case SCE_JS_OPERATOR: + case SCE_JS_OPERATOR2: if (ch == '{' || ch == '[' || ch == '(') { levelNext++; } else if (ch == '}' || ch == ']' || ch == ')') { diff --git a/scintilla/lexers/LexJulia.cxx b/scintilla/lexers/LexJulia.cxx index afeebbeee3..abe970ce5b 100644 --- a/scintilla/lexers/LexJulia.cxx +++ b/scintilla/lexers/LexJulia.cxx @@ -542,21 +542,6 @@ constexpr int GetLineCommentState(int lineState) noexcept { return lineState & SimpleLineStateMaskLineComment; } -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_JULIA_STRING - || style == SCE_JULIA_TRIPLE_STRING - || style == SCE_JULIA_BACKTICKS - || style == SCE_JULIA_TRIPLE_BACKTICKS - || style == SCE_JULIA_RAWSTRING - || style == SCE_JULIA_TRIPLE_RAWSTRING - || style == SCE_JULIA_BYTESTRING - || style == SCE_JULIA_TRIPLE_BYTESTRING - || style == SCE_JULIA_OPERATOR2 - || style == SCE_JULIA_VARIABLE2 - || style == SCE_JULIA_ESCAPECHAR - || style == SCE_JULIA_FORMAT_SPECIFIER; -} - void FoldJuliaDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList keywordLists, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -615,6 +600,7 @@ void FoldJuliaDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, break; case SCE_JULIA_OPERATOR: + case SCE_JULIA_OPERATOR2: if (ch == '{' || ch == '[' || ch == '(') { levelNext++; } else if (ch == '}' || ch == ']' || ch == ')') { @@ -630,18 +616,12 @@ void FoldJuliaDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, case SCE_JULIA_TRIPLE_RAWSTRING: case SCE_JULIA_BYTESTRING: case SCE_JULIA_TRIPLE_BYTESTRING: - if (!IsMultilineStringStyle(stylePrev)) { - levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { - levelNext--; - } - break; - case SCE_JULIA_REGEX: case SCE_JULIA_TRIPLE_REGEX: if (style != stylePrev) { levelNext++; - } else if (style != styleNext) { + } + if (style != styleNext) { levelNext--; } break; diff --git a/scintilla/lexers/LexKotlin.cxx b/scintilla/lexers/LexKotlin.cxx index 84ca8e1776..d2a5a43769 100644 --- a/scintilla/lexers/LexKotlin.cxx +++ b/scintilla/lexers/LexKotlin.cxx @@ -389,13 +389,6 @@ struct FoldLineState { } }; -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_KOTLIN_RAWSTRING - || style == SCE_KOTLIN_OPERATOR2 - || style == SCE_KOTLIN_ESCAPECHAR - || style == SCE_KOTLIN_VARIABLE; -} - void FoldKotlinDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -440,14 +433,16 @@ void FoldKotlinDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle } break; case SCE_KOTLIN_RAWSTRING: - if (!IsMultilineStringStyle(stylePrev)) { + if (style != stylePrev) { levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { + } + if (style != styleNext) { levelNext--; } break; case SCE_KOTLIN_OPERATOR: + case SCE_KOTLIN_OPERATOR2: if (ch == '{' || ch == '[' || ch == '(') { levelNext++; } else if (ch == '}' || ch == ']' || ch == ')') { diff --git a/scintilla/lexers/LexLua.cxx b/scintilla/lexers/LexLua.cxx index 4da101caa8..e4e78d5dee 100644 --- a/scintilla/lexers/LexLua.cxx +++ b/scintilla/lexers/LexLua.cxx @@ -84,7 +84,7 @@ bool IsLongBracket(LexAccessor &styler, Sci_PositionU pos, bool start, int &deli } // https://en.cppreference.com/w/c/io/fprintf -// 6.4 – String Manipulation https://www.lua.org/manual/5.4/manual.html#6.4 +// 6.4 String Manipulation https://www.lua.org/manual/5.4/manual.html#6.4 constexpr bool IsFormatSpecifier(char ch) noexcept { return AnyOf(ch, 'a', 'A', 'c', @@ -423,9 +423,9 @@ void FoldLuaDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, L case SCE_LUA_LITERALSTRING: case SCE_LUA_COMMENT: - if (stylePrev != style && stylePrev != SCE_LUA_FORMAT_SPECIFIER) { + if (stylePrev != style) { levelNext++; - } else if (styleNext != style && styleNext != SCE_LUA_FORMAT_SPECIFIER) { + } else if (styleNext != style) { levelNext--; } break; diff --git a/scintilla/lexers/LexPHP.cxx b/scintilla/lexers/LexPHP.cxx index 54a44abeee..ee5f4ec6cd 100644 --- a/scintilla/lexers/LexPHP.cxx +++ b/scintilla/lexers/LexPHP.cxx @@ -106,11 +106,6 @@ constexpr uint8_t GetPHPStringQuote(int state) noexcept { : ((state == SCE_PHP_STRING_DQ) ? '\"' : '`'); } -constexpr int GetPHPTagStyle(int outer) noexcept { - // use different style to simplify code folding - return (outer == SCE_H_COMMENT || outer == SCE_H_CDATA) ? SCE_H_XMLSTART : SCE_H_QUESTION; -} - enum class VariableType { Normal, Simple, // $variable @@ -278,7 +273,7 @@ bool PHPLexer::HandleBlockEnd(HtmlTextBlock block) { lineStateLineType = nestedState.empty() ? 0 : LineStateNestedStateLine; nestedState.clear(); nestedExpansion.clear(); - sc.SetState(GetPHPTagStyle(outer)); + sc.SetState(SCE_H_QUESTION); sc.Forward(); sc.ForwardSetState(outer); return true; @@ -321,7 +316,7 @@ void PHPLexer::HandlePHPTag() { } if (offset != 0) { const int outer = sc.state; - sc.SetState(GetPHPTagStyle(outer)); + sc.SetState(SCE_H_QUESTION); sc.Advance(offset); sc.SetState(SCE_PHP_DEFAULT); if (outer != SCE_H_DEFAULT) { @@ -1425,17 +1420,6 @@ struct FoldLineState { } }; -constexpr bool IsMultilinePHPStringStyle(int style) noexcept { - return style >= SCE_PHP_OPERATOR2 && style <= SCE_PHP_IDENTIFIER2; -} - -constexpr bool IsMultilineJsStringStyle(int style) noexcept { - return style == js_style(SCE_JS_STRING_BT) - || style == js_style(SCE_JS_OPERATOR2) - || style == js_style(SCE_JS_ESCAPECHAR) - || style == SCE_H_QUESTION; -} - void FoldPHPDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList /*keywordLists*/, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -1478,18 +1462,27 @@ void FoldPHPDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, L case SCE_PHP_COMMENTBLOCKDOC: case js_style(SCE_JS_COMMENTBLOCK): case js_style(SCE_JS_COMMENTBLOCKDOC): - case css_style(SCE_CSS_COMMENTBLOCK): { - const int level = (ch == '/' && chNext == '*') ? 1 : ((ch == '*' && chNext == '/') ? -1 : 0); - if (level != 0) { - levelNext += level; - startPos++; - chNext = styler[startPos]; - styleNext = styler.StyleAt(startPos); + case css_style(SCE_CSS_COMMENTBLOCK): + case SCE_H_COMMENT: + case SCE_H_CDATA: + case SCE_PHP_STRING_SQ: + case SCE_PHP_STRING_BT: + case SCE_PHP_STRING_DQ: + case SCE_PHP_HEREDOC: + case SCE_PHP_NOWDOC: + case js_style(SCE_JS_STRING_BT): + if (style != stylePrev) { + levelNext++; } - } break; + if (style != styleNext) { + levelNext--; + } + break; case SCE_PHP_OPERATOR: + case SCE_PHP_OPERATOR2: case js_style(SCE_JS_OPERATOR): + case js_style(SCE_JS_OPERATOR2): case css_style(SCE_CSS_OPERATOR): if (ch == '{' || ch == '[' || ch == '(') { levelNext++; @@ -1511,42 +1504,12 @@ void FoldPHPDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, L break; case SCE_H_QUESTION: - case SCE_H_XMLSTART: if (ch == '<' && chNext == '?') { levelNext++; } else if (ch == '?' && chNext == '>') { levelNext--; } break; - - case SCE_H_COMMENT: - case SCE_H_CDATA: - if (style != stylePrev && stylePrev != SCE_H_XMLSTART) { - levelNext++; - } else if (style != styleNext && styleNext != SCE_H_XMLSTART) { - levelNext--; - } - break; - - case SCE_PHP_STRING_SQ: - case SCE_PHP_STRING_BT: - case SCE_PHP_STRING_DQ: - case SCE_PHP_HEREDOC: - case SCE_PHP_NOWDOC: - if (!IsMultilinePHPStringStyle(stylePrev)) { - levelNext++; - } else if (!IsMultilinePHPStringStyle(styleNext)) { - levelNext--; - } - break; - - case js_style(SCE_JS_STRING_BT): - if (!IsMultilineJsStringStyle(stylePrev)) { - levelNext++; - } else if (!IsMultilineJsStringStyle(styleNext)) { - levelNext--; - } - break; } if (visibleChars == 0 && !IsSpaceEquiv(style)) { diff --git a/scintilla/lexers/LexPowerShell.cxx b/scintilla/lexers/LexPowerShell.cxx index cc06e0f48a..2c52a2fcf0 100644 --- a/scintilla/lexers/LexPowerShell.cxx +++ b/scintilla/lexers/LexPowerShell.cxx @@ -381,21 +381,6 @@ void ColourisePowerShellDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int sc.Complete(); } -constexpr bool IsStreamCommentStyle(int style) noexcept { - return style == SCE_POWERSHELL_COMMENTBLOCK - || style == SCE_POWERSHELL_COMMENTTAG - || style == SCE_POWERSHELL_DIRECTIVE - || style == SCE_POWERSHELL_TASKMARKER; -} - -constexpr bool IsDoubleStringStyle(int style) noexcept { - return style == SCE_POWERSHELL_STRING_DQ - || style == SCE_POWERSHELL_HERE_STRING_DQ - || style == SCE_POWERSHELL_OPERATOR2 - || style == SCE_POWERSHELL_ESCAPECHAR - || IsVariableStyle(style); -} - constexpr int GetLineCommentState(int lineState) noexcept { return lineState & SimpleLineStateMaskLineComment; } @@ -430,32 +415,20 @@ void FoldPowerShellDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initS switch (style) { case SCE_POWERSHELL_COMMENTBLOCK: - if (!IsStreamCommentStyle(stylePrev)) { - levelNext++; - } else if (!IsStreamCommentStyle(styleNext)) { - levelNext--; - } - break; - case SCE_POWERSHELL_STRING_SQ: case SCE_POWERSHELL_HERE_STRING_SQ: - if (style != stylePrev && stylePrev != SCE_POWERSHELL_ESCAPECHAR) { - ++levelNext; - } else if (style != styleNext && styleNext != SCE_POWERSHELL_ESCAPECHAR) { - --levelNext; - } - break; - case SCE_POWERSHELL_STRING_DQ: case SCE_POWERSHELL_HERE_STRING_DQ: - if (!IsDoubleStringStyle(stylePrev)) { - ++levelNext; - } else if (!IsDoubleStringStyle(styleNext)) { - --levelNext; + if (style != stylePrev) { + levelNext++; + } + if (style != styleNext) { + levelNext--; } break; - case SCE_POWERSHELL_OPERATOR: { + case SCE_POWERSHELL_OPERATOR: + case SCE_POWERSHELL_OPERATOR2: { const char ch = styler[startPos - 1]; if (ch == '{' || ch == '[' || ch == '(') { levelNext++; diff --git a/scintilla/lexers/LexRust.cxx b/scintilla/lexers/LexRust.cxx index ab0ab0da79..feed475842 100644 --- a/scintilla/lexers/LexRust.cxx +++ b/scintilla/lexers/LexRust.cxx @@ -516,16 +516,6 @@ struct FoldLineState { } }; -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_RUST_STRING - || style == SCE_RUST_BYTESTRING - || style == SCE_RUST_RAW_STRING - || style == SCE_RUST_RAW_BYTESTRING - || style == SCE_RUST_ESCAPECHAR - || style == SCE_RUST_FORMAT_SPECIFIER - || style == SCE_RUST_PLACEHOLDER; -} - void FoldRustDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -574,9 +564,10 @@ void FoldRustDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, case SCE_RUST_BYTESTRING: case SCE_RUST_RAW_STRING: case SCE_RUST_RAW_BYTESTRING: - if (!IsMultilineStringStyle(stylePrev)) { + if (style != stylePrev) { levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { + } + if (style != styleNext) { levelNext--; } break; diff --git a/scintilla/lexers/LexSwift.cxx b/scintilla/lexers/LexSwift.cxx index 295862ce72..7241a52aaa 100644 --- a/scintilla/lexers/LexSwift.cxx +++ b/scintilla/lexers/LexSwift.cxx @@ -490,14 +490,6 @@ struct FoldLineState { } }; -constexpr bool IsMultilineStringStyle(int style) noexcept { - return style == SCE_SWIFT_TRIPLE_STRING - || style == SCE_SWIFT_TRIPLE_STRING_ED - || style == SCE_SWIFT_REGEX_ED - || style == SCE_SWIFT_OPERATOR2 - || style == SCE_SWIFT_ESCAPECHAR; -} - void FoldSwiftDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, LexerWordList, Accessor &styler) { const Sci_PositionU endPos = startPos + lengthDoc; Sci_Line lineCurrent = styler.GetLine(startPos); @@ -543,14 +535,16 @@ void FoldSwiftDoc(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, case SCE_SWIFT_TRIPLE_STRING: case SCE_SWIFT_TRIPLE_STRING_ED: - if (!IsMultilineStringStyle(stylePrev)) { + if (style != stylePrev) { levelNext++; - } else if (!IsMultilineStringStyle(styleNext)) { + } + if (style != styleNext) { levelNext--; } break; case SCE_SWIFT_OPERATOR: + case SCE_SWIFT_OPERATOR2: if (ch == '{' || ch == '[' || ch == '(') { levelNext++; } else if (ch == '}' || ch == ']' || ch == ')') { diff --git a/scintilla/lexlib/LexAccessor.h b/scintilla/lexlib/LexAccessor.h index ec3d9435ac..9a557635b5 100644 --- a/scintilla/lexlib/LexAccessor.h +++ b/scintilla/lexlib/LexAccessor.h @@ -32,7 +32,7 @@ class LexAccessor { //const int documentVersion; const Sci_Position lenDoc; unsigned char styleBuf[bufferSize]; - Sci_Position validLen = 0; + Sci_PositionU validLen = 0; Sci_PositionU startSeg = 0; Sci_Position startPosStyling = 0; @@ -157,8 +157,8 @@ class LexAccessor { // Return style value from buffer when in buffer, else retrieve from document. // This is faster and can avoid calls to Flush() as that may be expensive. unsigned char BufferStyleAt(Sci_Position position) const noexcept { - const size_t index = position - startPosStyling; - if (index < static_cast(validLen)) { + const Sci_PositionU index = position - startPosStyling; + if (index < validLen) { return styleBuf[index]; } return pAccess->StyleAt(position); @@ -230,7 +230,7 @@ class LexAccessor { pAccess->SetStyleFor(len, attr); } else { for (Sci_PositionU i = 0; i < len; i++) { - assert((startPosStyling + validLen) < Length()); + assert((startPosStyling + validLen) < static_cast(Length())); styleBuf[validLen++] = attr; } }