diff options
author | Neil <nyamatongwe@gmail.com> | 2017-04-21 12:49:02 +1000 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2017-04-21 12:49:02 +1000 |
commit | 596e7f91811d9d39853051e0dee691e490ce95e0 (patch) | |
tree | 2f1def62402346750eb191a23fba95e2e9ab4db6 /lexers/LexPython.cxx | |
parent | 261277783fa16e0c974b1981a5eb0a208fca955e (diff) | |
download | scintilla-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.cxx | 10 |
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 |