diff options
Diffstat (limited to 'lexers/LexIndent.cxx')
-rw-r--r-- | lexers/LexIndent.cxx | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/lexers/LexIndent.cxx b/lexers/LexIndent.cxx deleted file mode 100644 index 053bdd928..000000000 --- a/lexers/LexIndent.cxx +++ /dev/null @@ -1,71 +0,0 @@ -// Scintilla source code edit control -/** @file LexIndent.cxx - ** Lexer for no language. Used for indentation-based folding of files. - **/ -// The License.txt file describes the conditions under which this software may be distributed. - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> -#include <stdarg.h> -#include <assert.h> -#include <ctype.h> - -#include "ILexer.h" -#include "Scintilla.h" -#include "SciLexer.h" - -#include "WordList.h" -#include "LexAccessor.h" -#include "Accessor.h" -#include "StyleContext.h" -#include "CharacterSet.h" -#include "LexerModule.h" - -using namespace Scintilla; - -static void ColouriseIndentDoc(Sci_PositionU startPos, Sci_Position length, int, WordList *[], - Accessor &styler) { - // Indent language means all style bytes are 0 so just mark the end - no need to fill in. - if (length > 0) { - styler.StartAt(startPos + length - 1); - styler.StartSegment(startPos + length - 1); - styler.ColourTo(startPos + length - 1, 0); - } -} - -static void FoldIndentDoc(Sci_PositionU startPos, Sci_Position length, int /* initStyle */, WordList *[], Accessor &styler) { - int visibleCharsCurrent, visibleCharsNext; - int levelCurrent, levelNext; - Sci_PositionU i, lineEnd; - Sci_PositionU lengthDoc = startPos + length; - Sci_Position lineCurrent = styler.GetLine(startPos); - - i = styler.LineStart(lineCurrent ); - lineEnd = styler.LineStart(lineCurrent+1)-1; - if(lineEnd>=lengthDoc) lineEnd = lengthDoc-1; - while(styler[lineEnd]=='\n' || styler[lineEnd]=='\r') lineEnd--; - for(visibleCharsCurrent=0, levelCurrent=SC_FOLDLEVELBASE; !visibleCharsCurrent && i<=lineEnd; i++){ - if(isspacechar(styler[i])) levelCurrent++; - else visibleCharsCurrent=1; - } - - for(; i<lengthDoc; lineCurrent++) { - i = styler.LineStart(lineCurrent+1); - lineEnd = styler.LineStart(lineCurrent+2)-1; - if(lineEnd>=lengthDoc) lineEnd = lengthDoc-1; - while(styler[lineEnd]=='\n' || styler[lineEnd]=='\r') lineEnd--; - for(visibleCharsNext=0, levelNext=SC_FOLDLEVELBASE; !visibleCharsNext && i<=lineEnd; i++){ - if(isspacechar(styler[i])) levelNext++; - else visibleCharsNext=1; - } - int lev = levelCurrent; - if(!visibleCharsCurrent) lev |= SC_FOLDLEVELWHITEFLAG; - else if(levelNext > levelCurrent) lev |= SC_FOLDLEVELHEADERFLAG; - styler.SetLevel(lineCurrent, lev); - levelCurrent = levelNext; - visibleCharsCurrent = visibleCharsNext; - } -} - -LexerModule lmIndent(SCLEX_INDENT, ColouriseIndentDoc, "indent", FoldIndentDoc); |