aboutsummaryrefslogtreecommitdiffhomepage
path: root/lexers/LexPython.cxx
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2017-04-21 12:49:02 +1000
committerNeil <nyamatongwe@gmail.com>2017-04-21 12:49:02 +1000
commit596e7f91811d9d39853051e0dee691e490ce95e0 (patch)
tree2f1def62402346750eb191a23fba95e2e9ab4db6 /lexers/LexPython.cxx
parent261277783fa16e0c974b1981a5eb0a208fca955e (diff)
downloadscintilla-mirror-596e7f91811d9d39853051e0dee691e490ce95e0.tar.gz
Treat comments at the end of the file as separate from the preceding structure.
Diffstat (limited to 'lexers/LexPython.cxx')
-rw-r--r--lexers/LexPython.cxx10
1 files changed, 8 insertions, 2 deletions
diff --git a/lexers/LexPython.cxx b/lexers/LexPython.cxx
index 328ed7363..97943ca24 100644
--- a/lexers/LexPython.cxx
+++ b/lexers/LexPython.cxx
@@ -887,18 +887,24 @@ void SCI_METHOD LexerPython::Fold(Sci_PositionU startPos, Sci_Position length, i
// Skip past any blank lines for next indent level info; we skip also
// comments (all comments, not just those starting in column 0)
// which effectively folds them into surrounding code rather
- // than screwing up folding.
+ // than screwing up folding. If comments end file, use the min
+ // comment indent as the level after
+ int minCommentLevel = indentCurrentLevel;
while (!quote &&
(lineNext < docLines) &&
((indentNext & SC_FOLDLEVELWHITEFLAG) ||
(lineNext <= docLines && IsCommentLine(lineNext, styler)))) {
+ if (IsCommentLine(lineNext, styler) && indentNext < minCommentLevel) {
+ minCommentLevel = indentNext;
+ }
+
lineNext++;
indentNext = styler.IndentAmount(lineNext, &spaceFlags, NULL);
}
- const int levelAfterComments = indentNext & SC_FOLDLEVELNUMBERMASK;
+ const int levelAfterComments = ((lineNext < docLines) ? indentNext & SC_FOLDLEVELNUMBERMASK : minCommentLevel);
const int levelBeforeComments = Maximum(indentCurrentLevel, levelAfterComments);
// Now set all the indent levels on the lines we skipped