46,8 → 46,8 |
|
TYPE |
|
tPoint = RECORD |
X, Y: INTEGER |
tPoint* = RECORD |
X*, Y*: INTEGER |
END; |
|
pPoint = POINTER TO tPoint; |
67,15 → 67,12 |
scroll: tPoint; |
CurX: INTEGER; |
modified*: BOOLEAN; |
|
edition*: tGuard; |
comments, numbers*, guard, |
search, cs, whole: BOOLEAN; |
curLine: tLine; |
fileName*: RW.tFileName; |
lang*: INTEGER; |
enc*: INTEGER; |
eol*: INTEGER; |
enc*, eol*: INTEGER; |
table: Search.IdxTable; |
foundList: List.tList; |
idxData: Search.tBuffer; |
82,7 → 79,8 |
foundSel: INTEGER; |
searchText: tString; |
chLog*: ChangeLog.tLog; |
maxLength*: INTEGER |
maxLength*: INTEGER; |
fileName*: RW.tFileName |
END; |
|
tProcedure = PROCEDURE; |
104,42 → 102,25 |
charWidth, charHeight: INTEGER; |
|
|
PROCEDURE setLang* (text: tText; lang: INTEGER); |
BEGIN |
text.lang := lang; |
text.comments := TRUE; |
Lang.setCurLang(text.lang) |
END setLang; |
|
|
PROCEDURE setName* (text: tText; name: RW.tFileName); |
VAR |
ext: RW.tFileName; |
BEGIN |
text.fileName := name; |
U.getFileName(text.fileName, ext, "."); |
U.getFileName(name, ext, "."); |
U.upcase(ext); |
IF ext = "OB07" THEN |
text.lang := Lang.langOberon |
ELSIF (ext = "C") OR (ext = "H") OR (ext = "CPP") THEN |
text.lang := Lang.langC |
ELSIF (ext = "PAS") OR (ext = "PP") THEN |
text.lang := Lang.langPascal |
ELSIF ext = "ASM" THEN |
text.lang := Lang.langFasm |
ELSIF ext = "LUA" THEN |
text.lang := Lang.langLua |
ELSIF ext = "INI" THEN |
text.lang := Lang.langIni |
ELSIF ext = "JSON" THEN |
text.lang := Lang.langJSON |
ELSE |
text.lang := Lang.langText |
END; |
Lang.setCurLang(text.lang) |
setLang(text, Lang.getLang(ext)) |
END setName; |
|
|
PROCEDURE setLang* (text: tText; lang: INTEGER); |
BEGIN |
text.lang := lang; |
text.comments := TRUE; |
Lang.setCurLang(text.lang) |
END setLang; |
|
|
PROCEDURE getPos* (text: tText; VAR x, y: INTEGER); |
BEGIN |
x := text.cursor.X + 1; |
422,387 → 403,387 |
|
ELSIF (lang = Lang.langC) OR (lang = Lang.langJSON) THEN |
|
IF depth = 0 THEN |
IF c = "/" THEN |
IF cond = 0 THEN |
cond := 1 |
ELSE |
PrintLex(text, line, i - 1, n, y, colors.comment, backColor); |
cond := 0; |
i := n |
END |
ELSIF (c = "*") & (cond = 1) THEN |
depth := 1; |
INC(i); |
PrintComment(text, line, depth, i, 2, y, backColor); |
cond := 0 |
ELSIF U.isLetter(c) OR (c = "_") OR (c = "'") OR (c = '"') THEN |
k := i; |
IF (c = "'") OR (c = '"') THEN |
String(text, line, i, y, backColor); |
ELSE |
ident(text, i, i - ORD((lang = Lang.langC) & (i > 0) & (getChar(line, i - 1) = "#")), y, line, backColor, Lang.isCS(lang)) |
END; |
IF lang = Lang.langJSON THEN |
WHILE Lines.isSpace(getChar(line, i + 1)) DO |
INC(i) |
IF depth = 0 THEN |
IF c = "/" THEN |
IF cond = 0 THEN |
cond := 1 |
ELSE |
PrintLex(text, line, i - 1, n, y, colors.comment, backColor); |
cond := 0; |
i := n |
END |
ELSIF (c = "*") & (cond = 1) THEN |
depth := 1; |
INC(i); |
PrintComment(text, line, depth, i, 2, y, backColor); |
cond := 0 |
ELSIF U.isLetter(c) OR (c = "_") OR (c = "'") OR (c = '"') THEN |
k := i; |
IF (c = "'") OR (c = '"') THEN |
String(text, line, i, y, backColor); |
ELSE |
ident(text, i, i - ORD((lang = Lang.langC) & (i > 0) & (getChar(line, i - 1) = "#")), y, line, backColor, Lang.isCS(lang)) |
END; |
IF lang = Lang.langJSON THEN |
WHILE Lines.isSpace(getChar(line, i + 1)) DO |
INC(i) |
END; |
IF getChar(line, i + 1) = ":" THEN |
PrintLex(text, line, k, i, y, colors.key1, backColor) |
END |
END; |
IF getChar(line, i + 1) = ":" THEN |
PrintLex(text, line, k, i, y, colors.key1, backColor) |
END |
END; |
cond := 0 |
ELSIF U.isDigit(c) THEN |
k := i; |
INC(i); |
c := getChar(line, i); |
IF c = "." THEN |
DEC(i); |
c := getChar(line, i) |
END; |
IF (cap(c) = "X") & (getChar(line, i - 1) = "0") THEN |
REPEAT |
INC(i); |
c := getChar(line, i) |
UNTIL ~U.isHex(cap(c)); |
IF UL(c) THEN |
INC(i) |
END |
ELSIF UL(c) THEN |
INC(i) |
ELSIF U.isDigit(c) THEN |
REPEAT |
INC(i) |
UNTIL ~U.isDigit(getChar(line, i)); |
c := getChar(line, i); |
IF UL(c) THEN |
INC(i) |
ELSIF c = "." THEN |
INC(i); |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
c := getChar(line, i); |
IF cap(c) = "E" THEN |
INC(i); |
c := getChar(line, i); |
IF (c = "+") OR (c = "-") THEN |
INC(i) |
END; |
IF U.isDigit(getChar(line, i)) THEN |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
c := getChar(line, i); |
IF FL(c) THEN |
INC(i) |
END |
END |
ELSIF FL(c) THEN |
INC(i) |
END |
END |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, colors.num, backColor); |
cond := 0 |
ELSE |
cond := 0 |
END |
ELSIF depth = 1 THEN |
IF c = "*" THEN |
cond := 1 |
ELSIF (c = "/") & (cond = 1) THEN |
cond := 0; |
depth := 0 |
ELSE |
cond := 0 |
END |
END; |
cond := 0 |
ELSIF U.isDigit(c) THEN |
k := i; |
INC(i); |
c := getChar(line, i); |
IF c = "." THEN |
DEC(i); |
c := getChar(line, i) |
END; |
IF (cap(c) = "X") & (getChar(line, i - 1) = "0") THEN |
REPEAT |
INC(i); |
c := getChar(line, i) |
UNTIL ~U.isHex(cap(c)); |
IF UL(c) THEN |
INC(i) |
END |
ELSIF UL(c) THEN |
INC(i) |
ELSIF U.isDigit(c) THEN |
REPEAT |
INC(i) |
UNTIL ~U.isDigit(getChar(line, i)); |
c := getChar(line, i); |
IF UL(c) THEN |
INC(i) |
ELSIF c = "." THEN |
INC(i); |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
c := getChar(line, i); |
IF cap(c) = "E" THEN |
INC(i); |
c := getChar(line, i); |
IF (c = "+") OR (c = "-") THEN |
INC(i) |
END; |
IF U.isDigit(getChar(line, i)) THEN |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
c := getChar(line, i); |
IF FL(c) THEN |
INC(i) |
END |
END |
ELSIF FL(c) THEN |
INC(i) |
END |
END |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, colors.num, backColor); |
cond := 0 |
ELSE |
cond := 0 |
END |
ELSIF depth = 1 THEN |
IF c = "*" THEN |
cond := 1 |
ELSIF (c = "/") & (cond = 1) THEN |
cond := 0; |
depth := 0 |
ELSE |
cond := 0 |
END |
END |
|
ELSIF lang = Lang.langOberon THEN |
|
IF (depth = 0) & (c = "/") THEN |
IF cond = 3 THEN |
PrintLex(text, line, i - 1, n, y, colors.comment, backColor); |
cond := 0; |
i := n |
ELSE |
cond := 3 |
END |
ELSIF (depth = 0) & ((c = "'") OR (c = '"')) THEN |
String(text, line, i, y, backColor); |
cond := 0 |
ELSIF (depth = 0) & U.isDigit(c) THEN |
color := colors.num; |
k := i; |
INC(i); |
WHILE U.isHex(getChar(line, i)) DO |
INC(i) |
END; |
IF i <= n THEN |
IF getChar(line, i) = "." THEN |
INC(i); |
IF getChar(line, i) = "." THEN |
DEC(i) |
END; |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
IF getChar(line, i) = "E" THEN |
INC(i); |
IF (getChar(line, i) = "+") OR (getChar(line, i) = "-") THEN |
INC(i) |
END; |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END |
END |
ELSIF getChar(line, i) = "H" THEN |
INC(i) |
ELSIF getChar(line, i) = "X" THEN |
color := colors.string; |
INC(i) |
END |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, color, backColor); |
cond := 0 |
ELSIF (depth = 0) & (U.isLetter(c) OR (c = "_")) THEN |
ident(text, i, i, y, line, backColor, Lang.isCS(lang)); |
cond := 0 |
ELSIF c = "(" THEN |
cond := 1 |
ELSIF c = "*" THEN |
IF cond = 1 THEN |
INC(depth); |
INC(i); |
PrintComment(text, line, depth, i, 2, y, backColor); |
cond := 0 |
ELSE |
cond := 2 |
END |
ELSIF c = ")" THEN |
IF cond = 2 THEN |
IF depth > 0 THEN |
DEC(depth) |
END |
END; |
cond := 0 |
ELSE |
cond := 0 |
END |
IF (depth = 0) & (c = "/") THEN |
IF cond = 3 THEN |
PrintLex(text, line, i - 1, n, y, colors.comment, backColor); |
cond := 0; |
i := n |
ELSE |
cond := 3 |
END |
ELSIF (depth = 0) & ((c = "'") OR (c = '"')) THEN |
String(text, line, i, y, backColor); |
cond := 0 |
ELSIF (depth = 0) & U.isDigit(c) THEN |
color := colors.num; |
k := i; |
INC(i); |
WHILE U.isHex(getChar(line, i)) DO |
INC(i) |
END; |
IF i <= n THEN |
IF getChar(line, i) = "." THEN |
INC(i); |
IF getChar(line, i) = "." THEN |
DEC(i) |
END; |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
IF getChar(line, i) = "E" THEN |
INC(i); |
IF (getChar(line, i) = "+") OR (getChar(line, i) = "-") THEN |
INC(i) |
END; |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END |
END |
ELSIF getChar(line, i) = "H" THEN |
INC(i) |
ELSIF getChar(line, i) = "X" THEN |
color := colors.string; |
INC(i) |
END |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, color, backColor); |
cond := 0 |
ELSIF (depth = 0) & (U.isLetter(c) OR (c = "_")) THEN |
ident(text, i, i, y, line, backColor, Lang.isCS(lang)); |
cond := 0 |
ELSIF c = "(" THEN |
cond := 1 |
ELSIF c = "*" THEN |
IF cond = 1 THEN |
INC(depth); |
INC(i); |
PrintComment(text, line, depth, i, 2, y, backColor); |
cond := 0 |
ELSE |
cond := 2 |
END |
ELSIF c = ")" THEN |
IF cond = 2 THEN |
IF depth > 0 THEN |
DEC(depth) |
END |
END; |
cond := 0 |
ELSE |
cond := 0 |
END |
|
ELSIF lang = Lang.langLua THEN |
|
IF depth = 0 THEN |
IF c = "-" THEN |
IF cond = 1 THEN |
IF Lang.LuaLong(line, i + 1) >= 0 THEN |
depth := Lang.LuaLong(line, i + 1)*2 + 1; |
INC(i); |
PrintComment(text, line, depth, i, 2, y, backColor) |
ELSE |
PrintLex(text, line, i - 1, n, y, colors.comment, backColor); |
i := n |
END; |
cond := 0 |
ELSE |
cond := 1 |
END |
ELSIF c = "[" THEN |
cond := 0; |
k := Lang.LuaLong(line, i); |
IF k >= 0 THEN |
depth := (k + 1)*2; |
INC(i, 2); |
PrintComment(text, line, depth, i, 2, y, backColor); |
cond := 0 |
END |
ELSIF (c = "'") OR (c = '"') THEN |
String(text, line, i, y, backColor); |
cond := 0 |
ELSIF U.isDigit(c) THEN |
k := i; |
IF (c = "0") & (cap(getChar(line, i + 1)) = "X") THEN |
isDgt := U.isHex; |
hex := TRUE; |
INC(i, 2) |
ELSE |
isDgt := U.isDigit; |
hex := FALSE |
END; |
WHILE isDgt(cap(getChar(line, i))) DO |
INC(i) |
END; |
IF getChar(line, i) = "." THEN |
INC(i); |
IF getChar(line, i) = "." THEN |
DEC(i) |
END; |
WHILE isDgt(cap(getChar(line, i))) DO |
INC(i) |
END |
END; |
IF (cap(getChar(line, i)) = "E") OR hex & (cap(getChar(line, i)) = "P") THEN |
INC(i); |
IF (getChar(line, i) = "-") OR (getChar(line, i) = "+") THEN |
INC(i) |
END; |
WHILE isDgt(cap(getChar(line, i))) DO |
INC(i) |
END |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, colors.num, backColor); |
cond := 0 |
ELSIF U.isLetter(c) OR (c = "_") THEN |
ident(text, i, i, y, line, backColor, Lang.isCS(lang)); |
cond := 0 |
ELSE |
cond := 0 |
END |
IF depth = 0 THEN |
IF c = "-" THEN |
IF cond = 1 THEN |
IF Lang.LuaLong(line, i + 1) >= 0 THEN |
depth := Lang.LuaLong(line, i + 1)*2 + 1; |
INC(i); |
PrintComment(text, line, depth, i, 2, y, backColor) |
ELSE |
PrintLex(text, line, i - 1, n, y, colors.comment, backColor); |
i := n |
END; |
cond := 0 |
ELSE |
cond := 1 |
END |
ELSIF c = "[" THEN |
cond := 0; |
k := Lang.LuaLong(line, i); |
IF k >= 0 THEN |
depth := (k + 1)*2; |
INC(i, 2); |
PrintComment(text, line, depth, i, 2, y, backColor); |
cond := 0 |
END |
ELSIF (c = "'") OR (c = '"') THEN |
String(text, line, i, y, backColor); |
cond := 0 |
ELSIF U.isDigit(c) THEN |
k := i; |
IF (c = "0") & (cap(getChar(line, i + 1)) = "X") THEN |
isDgt := U.isHex; |
hex := TRUE; |
INC(i, 2) |
ELSE |
isDgt := U.isDigit; |
hex := FALSE |
END; |
WHILE isDgt(cap(getChar(line, i))) DO |
INC(i) |
END; |
IF getChar(line, i) = "." THEN |
INC(i); |
IF getChar(line, i) = "." THEN |
DEC(i) |
END; |
WHILE isDgt(cap(getChar(line, i))) DO |
INC(i) |
END |
END; |
IF (cap(getChar(line, i)) = "E") OR hex & (cap(getChar(line, i)) = "P") THEN |
INC(i); |
IF (getChar(line, i) = "-") OR (getChar(line, i) = "+") THEN |
INC(i) |
END; |
WHILE isDgt(cap(getChar(line, i))) DO |
INC(i) |
END |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, colors.num, backColor); |
cond := 0 |
ELSIF U.isLetter(c) OR (c = "_") THEN |
ident(text, i, i, y, line, backColor, Lang.isCS(lang)); |
cond := 0 |
ELSE |
cond := 0 |
END |
|
ELSIF depth > 0 THEN |
IF (cond = 0) & (c = "]") THEN |
cond := 1 |
ELSIF (cond >= 1) & (c = "=") THEN |
INC(cond) |
ELSIF (cond >= 1) & (c = "]") & (cond * 2 - depth MOD 2 = depth) THEN |
depth := 0; |
cond := 0 |
ELSE |
cond := 0 |
END |
END |
ELSIF depth > 0 THEN |
IF (cond = 0) & (c = "]") THEN |
cond := 1 |
ELSIF (cond >= 1) & (c = "=") THEN |
INC(cond) |
ELSIF (cond >= 1) & (c = "]") & (cond * 2 - depth MOD 2 = depth) THEN |
depth := 0; |
cond := 0 |
ELSE |
cond := 0 |
END |
END |
|
ELSIF lang = Lang.langPascal THEN |
|
IF depth = 0 THEN |
IF c = "(" THEN |
cond := 1 |
ELSIF (c = "*") & (cond = 1) THEN |
depth := 2; |
INC(i); |
PrintComment(text, line, depth, i, 2, y, backColor); |
cond := 0 |
ELSIF c = "/" THEN |
IF cond = 2 THEN |
PrintLex(text, line, i - 1, n, y, colors.comment, backColor); |
cond := 0; |
i := n |
ELSE |
cond := 2 |
END |
ELSIF c = "'" THEN |
String(text, line, i, y, backColor); |
cond := 0 |
ELSIF c = "{" THEN |
IF getChar(line, i + 1) = "$" THEN |
depth := 3 |
ELSE |
depth := 1 |
END; |
INC(i); |
PrintComment(text, line, depth, i, 1, y, backColor); |
cond := 0 |
ELSIF c = "#" THEN |
k := i; |
INC(i); |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, colors.string, backColor); |
cond := 0 |
ELSIF c = "$" THEN |
IF (i > 0 ) & (getChar(line, i - 1) = "#") THEN |
color := colors.string |
ELSE |
color := colors.num |
END; |
k := i; |
INC(i); |
WHILE U.isHex(cap(getChar(line, i))) DO |
INC(i) |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, color, backColor); |
cond := 0 |
ELSIF U.isDigit(c) THEN |
k := i; |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
IF getChar(line, i) = "." THEN |
INC(i); |
IF getChar(line, i) = "." THEN |
DEC(i) |
END; |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
IF cap(getChar(line, i)) = "E" THEN |
INC(i); |
IF (getChar(line, i) = "-") OR (getChar(line, i) = "+") THEN |
INC(i) |
END; |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END |
END |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, colors.num, backColor); |
cond := 0 |
ELSIF (U.isLetter(c) OR (c = "_")) THEN |
ident(text, i, i, y, line, backColor, Lang.isCS(lang)); |
cond := 0 |
ELSE |
cond := 0 |
END |
ELSIF depth IN {1, 3} THEN |
IF c = "}" THEN |
depth := 0 |
END |
ELSIF depth = 2 THEN |
IF c = "*" THEN |
cond := 1 |
ELSIF (c = ")") & (cond = 1) THEN |
depth := 0; |
cond := 0 |
ELSE |
cond := 0 |
END |
END |
IF depth = 0 THEN |
IF c = "(" THEN |
cond := 1 |
ELSIF (c = "*") & (cond = 1) THEN |
depth := 2; |
INC(i); |
PrintComment(text, line, depth, i, 2, y, backColor); |
cond := 0 |
ELSIF c = "/" THEN |
IF cond = 2 THEN |
PrintLex(text, line, i - 1, n, y, colors.comment, backColor); |
cond := 0; |
i := n |
ELSE |
cond := 2 |
END |
ELSIF c = "'" THEN |
String(text, line, i, y, backColor); |
cond := 0 |
ELSIF c = "{" THEN |
IF getChar(line, i + 1) = "$" THEN |
depth := 3 |
ELSE |
depth := 1 |
END; |
INC(i); |
PrintComment(text, line, depth, i, 1, y, backColor); |
cond := 0 |
ELSIF c = "#" THEN |
k := i; |
INC(i); |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, colors.string, backColor); |
cond := 0 |
ELSIF c = "$" THEN |
IF (i > 0 ) & (getChar(line, i - 1) = "#") THEN |
color := colors.string |
ELSE |
color := colors.num |
END; |
k := i; |
INC(i); |
WHILE U.isHex(cap(getChar(line, i))) DO |
INC(i) |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, color, backColor); |
cond := 0 |
ELSIF U.isDigit(c) THEN |
k := i; |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
IF getChar(line, i) = "." THEN |
INC(i); |
IF getChar(line, i) = "." THEN |
DEC(i) |
END; |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
IF cap(getChar(line, i)) = "E" THEN |
INC(i); |
IF (getChar(line, i) = "-") OR (getChar(line, i) = "+") THEN |
INC(i) |
END; |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END |
END |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, colors.num, backColor); |
cond := 0 |
ELSIF (U.isLetter(c) OR (c = "_")) THEN |
ident(text, i, i, y, line, backColor, Lang.isCS(lang)); |
cond := 0 |
ELSE |
cond := 0 |
END |
ELSIF depth IN {1, 3} THEN |
IF c = "}" THEN |
depth := 0 |
END |
ELSIF depth = 2 THEN |
IF c = "*" THEN |
cond := 1 |
ELSIF (c = ")") & (cond = 1) THEN |
depth := 0; |
cond := 0 |
ELSE |
cond := 0 |
END |
END |
|
ELSIF lang = Lang.langIni THEN |
|
IF depth = 0 THEN |
IF (c = ";") OR (c = "#") THEN |
PrintLex(text, line, i, n, y, colors.comment, backColor); |
i := n |
ELSIF c = '"' THEN |
String(text, line, i, y, backColor) |
ELSIF c = "[" THEN |
depth := 1; |
INC(i); |
PrintComment(text, line, depth, i, 1, y, backColor) |
ELSIF U.isDigit(c) THEN |
k := i; |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, colors.num, backColor) |
ELSIF (U.isLetter(c) OR (c = "_")) THEN |
ident(text, i, i, y, line, backColor, Lang.isCS(lang)) |
END |
ELSIF depth = 1 THEN |
IF c = "]" THEN |
depth := 0 |
END |
END |
IF depth = 0 THEN |
IF (c = ";") OR (c = "#") THEN |
PrintLex(text, line, i, n, y, colors.comment, backColor); |
i := n |
ELSIF c = '"' THEN |
String(text, line, i, y, backColor) |
ELSIF c = "[" THEN |
depth := 1; |
INC(i); |
PrintComment(text, line, depth, i, 1, y, backColor) |
ELSIF U.isDigit(c) THEN |
k := i; |
WHILE U.isDigit(getChar(line, i)) DO |
INC(i) |
END; |
DEC(i); |
PrintLex(text, line, k, i, y, colors.num, backColor) |
ELSIF (U.isLetter(c) OR (c = "_")) THEN |
ident(text, i, i, y, line, backColor, Lang.isCS(lang)) |
END |
ELSIF depth = 1 THEN |
IF c = "]" THEN |
depth := 0 |
END |
END |
|
END; |
INC(i) |
2089,7 → 2070,7 |
line := getLine(text, n); |
firstLine := line; |
cnt := 0; |
WHILE (line # NIL) & (cnt <= textsize.Y) DO |
WHILE (line # NIL) & (cnt < textsize.Y) DO |
backColor := colors.back; |
IF (line = text.curLine) & ~selected(text) THEN |
G.SetColor(canvas, colors.curline); |
2122,7 → 2103,7 |
line := firstLine; |
SetColor(colors.numtext, colors.numback); |
y := padding.top + inter DIV 2; |
n := MIN(text.scroll.Y + textsize.Y + 1, text.count); |
n := MIN(text.scroll.Y + textsize.Y, text.count); |
FOR i := text.scroll.Y + 1 TO n DO |
IF text.numbers THEN |
IF (i MOD 10 = 0) OR (i - 1 = text.cursor.Y) OR line.label THEN |
2147,7 → 2128,7 |
cnt := 0; |
line := firstLine; |
lastLine := line; |
WHILE (line # NIL) & (cnt <= textsize.Y) DO |
WHILE (line # NIL) & (cnt < textsize.Y) DO |
lastLine := line; |
NextLine(line); |
INC(cnt) |