aboutsummaryrefslogtreecommitdiffhomepage
path: root/lexers/LexTeX.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'lexers/LexTeX.cxx')
-rw-r--r--lexers/LexTeX.cxx56
1 files changed, 30 insertions, 26 deletions
diff --git a/lexers/LexTeX.cxx b/lexers/LexTeX.cxx
index 62ade1d75..0b391b6bd 100644
--- a/lexers/LexTeX.cxx
+++ b/lexers/LexTeX.cxx
@@ -18,18 +18,22 @@
#include <stdlib.h>
#include <string.h>
-#include <ctype.h>
#include <stdio.h>
#include <stdarg.h>
+#include <assert.h>
+#include <ctype.h>
-#include "Platform.h"
-
-#include "PropSet.h"
-#include "Accessor.h"
-#include "KeyWords.h"
+#include "ILexer.h"
#include "Scintilla.h"
#include "SciLexer.h"
+
+#include "PropSetSimple.h"
+#include "WordList.h"
+#include "LexAccessor.h"
+#include "Accessor.h"
#include "StyleContext.h"
+#include "CharacterSet.h"
+#include "LexerModule.h"
#ifdef SCI_NAMESPACE
using namespace Scintilla;
@@ -285,8 +289,8 @@ static void ColouriseTeXDoc(
static inline bool isNumber(int ch) {
return
- (ch == '0') || (ch == '1') || (ch == '2') ||
- (ch == '3') || (ch == '4') || (ch == '5') ||
+ (ch == '0') || (ch == '1') || (ch == '2') ||
+ (ch == '3') || (ch == '4') || (ch == '5') ||
(ch == '6') || (ch == '7') || (ch == '8') || (ch == '9');
}
@@ -298,7 +302,7 @@ static int ParseTeXCommand(unsigned int pos, Accessor &styler, char *command)
{
int length=0;
char ch=styler.SafeGetCharAt(pos+1);
-
+
if(ch==',' || ch==':' || ch==';' || ch=='%'){
command[0]=ch;
command[1]=0;
@@ -311,14 +315,14 @@ static int ParseTeXCommand(unsigned int pos, Accessor &styler, char *command)
length++;
ch=styler.SafeGetCharAt(pos+length+1);
}
-
- command[length]='\0';
+
+ command[length]='\0';
if(!length) return 0;
return length+1;
}
static int classifyFoldPointTeXPaired(const char* s) {
- int lev=0;
+ int lev=0;
if (!(isdigit(s[0]) || (s[0] == '.'))){
if (strcmp(s, "begin")==0||strcmp(s,"FoldStart")==0||
strcmp(s,"abstract")==0||strcmp(s,"unprotect")==0||
@@ -330,14 +334,14 @@ static int classifyFoldPointTeXPaired(const char* s) {
strcmp(s,"maketitle")==0||strcmp(s,"protect")==0||
strncmp(s,"stop",4)==0||strncmp(s,"Stop",4)==0||
strcmp(s,"fi")==0
- )
+ )
lev=-1;
}
return lev;
}
static int classifyFoldPointTeXUnpaired(const char* s) {
- int lev=0;
+ int lev=0;
if (!(isdigit(s[0]) || (s[0] == '.'))){
if (strcmp(s,"part")==0||
strcmp(s,"chapter")==0||
@@ -362,7 +366,7 @@ static int classifyFoldPointTeXUnpaired(const char* s) {
static bool IsTeXCommentLine(int line, Accessor &styler) {
int pos = styler.LineStart(line);
int eol_pos = styler.LineStart(line + 1) - 1;
-
+
int startpos = pos;
while (startpos<eol_pos){
@@ -370,14 +374,14 @@ static bool IsTeXCommentLine(int line, Accessor &styler) {
if (ch!='%' && ch!=' ') return false;
else if (ch=='%') return true;
startpos++;
- }
+ }
return false;
}
// FoldTeXDoc: borrowed from VisualTeX with modifications
-static void FoldTexDoc(unsigned int startPos, int length, int, WordList *[], Accessor &styler)
+static void FoldTexDoc(unsigned int startPos, int length, int, WordList *[], Accessor &styler)
{
bool foldCompact = styler.GetPropertyInt("fold.compact", 1) != 0;
unsigned int endPos = startPos+length;
@@ -387,7 +391,7 @@ static void FoldTexDoc(unsigned int startPos, int length, int, WordList *[], Acc
int levelCurrent=levelPrev;
char chNext=styler[startPos];
char buffer[100]="";
-
+
for (unsigned int i=startPos; i < endPos; i++) {
char ch=chNext;
chNext=styler.SafeGetCharAt(i+1);
@@ -412,12 +416,12 @@ static void FoldTexDoc(unsigned int startPos, int length, int, WordList *[], Acc
chNext4=styler.SafeGetCharAt(i+4);
chNext5=styler.SafeGetCharAt(i+5);
- bool atEOfold = (ch == '%') &&
- (chNext == '%') && (chNext2=='}') &&
+ bool atEOfold = (ch == '%') &&
+ (chNext == '%') && (chNext2=='}') &&
(chNext3=='}')&& (chNext4=='-')&& (chNext5=='-');
- bool atBOfold = (ch == '%') &&
- (chNext == '%') && (chNext2=='-') &&
+ bool atBOfold = (ch == '%') &&
+ (chNext == '%') && (chNext2=='-') &&
(chNext3=='-')&& (chNext4=='{')&& (chNext5=='{');
if(atBOfold){
@@ -427,11 +431,11 @@ static void FoldTexDoc(unsigned int startPos, int length, int, WordList *[], Acc
if(atEOfold){
levelCurrent-=1;
}
-
+
if(ch=='\\' && chNext=='['){
levelCurrent+=1;
}
-
+
if(ch=='\\' && chNext==']'){
levelCurrent-=1;
}
@@ -452,8 +456,8 @@ static void FoldTexDoc(unsigned int startPos, int length, int, WordList *[], Acc
levelCurrent--;
}
-//---------------------------------------------------------------------------------------------
-
+//---------------------------------------------------------------------------------------------
+
if (atEOL) {
int lev = levelPrev;
if (visibleChars == 0 && foldCompact)