mirror of
https://github.com/sqlitebrowser/sqlitebrowser.git
synced 2026-01-20 02:50:46 -06:00
Applied patch from: https://sourceforge.net/p/scintilla/code/merge-requests/19/ See this thread for info: https://groups.google.com/forum/#!topic/scintilla-interest/w4sW3sM6Cek This is merged into Scintilla, so it might come fixed in a future release. This should solve the folding issue reported in #1173
25 lines
1003 B
Plaintext
25 lines
1003 B
Plaintext
diff --git a/libs/qscintilla/lexers/LexJSON.cpp b/libs/qscintilla/lexers/LexJSON.cpp
|
|
index 9c044e5..6c06061 100644
|
|
--- a/libs/qscintilla/lexers/LexJSON.cpp
|
|
+++ b/libs/qscintilla/lexers/LexJSON.cpp
|
|
@@ -457,7 +457,9 @@ void SCI_METHOD LexerJSON::Fold(Sci_PositionU startPos,
|
|
LexAccessor styler(pAccess);
|
|
Sci_PositionU currLine = styler.GetLine(startPos);
|
|
Sci_PositionU endPos = startPos + length;
|
|
- int currLevel = styler.LevelAt(currLine) & SC_FOLDLEVELNUMBERMASK;
|
|
+ int currLevel = SC_FOLDLEVELBASE;
|
|
+ if (currLine > 0)
|
|
+ currLevel = styler.LevelAt(currLine - 1) >> 16;
|
|
int nextLevel = currLevel;
|
|
int visibleChars = 0;
|
|
for (Sci_PositionU i = startPos; i < endPos; i++) {
|
|
@@ -472,7 +474,7 @@ void SCI_METHOD LexerJSON::Fold(Sci_PositionU startPos,
|
|
}
|
|
}
|
|
if (atEOL || i == (endPos-1)) {
|
|
- int level = currLevel;
|
|
+ int level = currLevel | nextLevel << 16;
|
|
if (!visibleChars && options.foldCompact) {
|
|
level |= SC_FOLDLEVELWHITEFLAG;
|
|
} else if (nextLevel > currLevel) {
|