From 752460933191c706370f2e98daec6f3a7ff2eec0 Mon Sep 17 00:00:00 2001 From: Anton Krotov Date: Wed, 15 Sep 2021 21:40:33 +0000 Subject: [PATCH] CEDIT: optional highlighting of operators and delimiters git-svn-id: svn://kolibrios.org@9193 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/develop/cedit/CEDIT | Bin 34927 -> 34950 bytes programs/develop/cedit/CEDIT.INI | 2 + programs/develop/cedit/SRC/CEdit.ob07 | 2 +- programs/develop/cedit/SRC/Graph.ob07 | 16 +++-- programs/develop/cedit/SRC/Languages.ob07 | 69 ++++++++++++++-------- programs/develop/cedit/SRC/Text.ob07 | 56 +++++++----------- 6 files changed, 79 insertions(+), 66 deletions(-) diff --git a/programs/develop/cedit/CEDIT b/programs/develop/cedit/CEDIT index 8d719b543ebfbf0bcb31dcd2c0864f8c55a1bacd..2c0b9fe451654ff0bde3717ee7f3fe6a1afb7052 100644 GIT binary patch literal 34950 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 a7!Yn%!a#qE&m2`d8#0cMuK@cJ000L|q^6Dl literal 34927 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 DK?lLQ diff --git a/programs/develop/cedit/CEDIT.INI b/programs/develop/cedit/CEDIT.INI index 140a3ae268..5bad974dea 100644 --- a/programs/develop/cedit/CEDIT.INI +++ b/programs/develop/cedit/CEDIT.INI @@ -67,11 +67,13 @@ KW3 = KW1 = auto,default,disabled,false,none,true KW2 = KW3 = +delim = = [lang_Fasm] KW1 = KW2 = KW3 = +delim = {}[]<>:,()&*/|+-\# [lang_JSON] KW1 = diff --git a/programs/develop/cedit/SRC/CEdit.ob07 b/programs/develop/cedit/SRC/CEdit.ob07 index 86d1aad3ed..f53ea8c07d 100644 --- a/programs/develop/cedit/SRC/CEdit.ob07 +++ b/programs/develop/cedit/SRC/CEdit.ob07 @@ -28,7 +28,7 @@ IMPORT RW, Ini, EB := EditBox, Icons, Tabs, Timer; CONST - header = "CEdit (14-sep-2021)"; + header = "CEdit (15-sep-2021)"; ShellFilter = ""; EditFilter = "SH|ASM|TXT|INC|OB07|C|CPP|H|PAS|PP|LUA|INI|JSON"; diff --git a/programs/develop/cedit/SRC/Graph.ob07 b/programs/develop/cedit/SRC/Graph.ob07 index 5ea7873401..5e4b763cf3 100644 --- a/programs/develop/cedit/SRC/Graph.ob07 +++ b/programs/develop/cedit/SRC/Graph.ob07 @@ -19,7 +19,7 @@ MODULE Graph; -IMPORT SYSTEM, K := KOSAPI, Lines; +IMPORT SYSTEM, K := KOSAPI, Lines, Languages; CONST @@ -247,11 +247,11 @@ BEGIN END clear; -PROCEDURE TextOut* (canvas: tCanvas; x, y: INTEGER; text: INTEGER; n: INTEGER); +PROCEDURE TextOut* (canvas: tCanvas; x, y: INTEGER; text: INTEGER; n: INTEGER; delimColor: INTEGER); CONST WCHAR_SIZE = 2; VAR - color, i: INTEGER; + color, i, ecx: INTEGER; c: WCHAR; BEGIN IF (0 <= y) & (y <= canvas.height - canvas.font.height - 1) THEN @@ -271,13 +271,17 @@ BEGIN WHILE n > 0 DO SYSTEM.GET(text + i*WCHAR_SIZE, c); IF ~Lines.isSpace(c) THEN - K.sysfunc6(4, x*65536 + y, LSL(28H + canvas.font.size, 24) + canvas.textColor, SYSTEM.ADR(c), 1, canvas.bitmap - 8) + IF Languages.isDelim(c) THEN + ecx := LSL(28H + canvas.font.size, 24) + delimColor + ELSE + ecx := LSL(28H + canvas.font.size, 24) + canvas.textColor + END; + K.sysfunc6(4, x*65536 + y, ecx, SYSTEM.ADR(c), 1, canvas.bitmap - 8) END; INC(x, canvas.font.width); INC(i); DEC(n) END - (*K.sysfunc6(4, x*65536 + y, LSL(28H + canvas.font.size, 24) + canvas.textColor, text + i*WCHAR_SIZE, n, canvas.bitmap - 8)*) END END END TextOut; @@ -285,7 +289,7 @@ END TextOut; PROCEDURE TextOut2* (canvas: tCanvas; x, y: INTEGER; text: ARRAY OF WCHAR; n: INTEGER); BEGIN - TextOut(canvas, x, y, SYSTEM.ADR(text[0]), n) + TextOut(canvas, x, y, SYSTEM.ADR(text[0]), n, canvas.textColor) END TextOut2; diff --git a/programs/develop/cedit/SRC/Languages.ob07 b/programs/develop/cedit/SRC/Languages.ob07 index 241b1912c2..f11a55f32e 100644 --- a/programs/develop/cedit/SRC/Languages.ob07 +++ b/programs/develop/cedit/SRC/Languages.ob07 @@ -37,12 +37,17 @@ TYPE words: ARRAY 200, 32 OF WCHAR; cnt: INTEGER END; + tDelimiters = ARRAY 256 OF BOOLEAN; + procGetStr = PROCEDURE (secName, keyName: ARRAY OF CHAR; VAR s: ARRAY OF CHAR); VAR - oberonKW, cKW, pascalKW, luaKW, iniKW, fasmKW, jsonKW: ARRAY 3 OF tKeyWords; + KW: ARRAY 8 OF ARRAY 3 OF tKeyWords; + Delim: ARRAY 8 OF tDelimiters; + + currentLang: INTEGER; PROCEDURE isCS* (lang: INTEGER): BOOLEAN; @@ -63,24 +68,23 @@ END checkKW; PROCEDURE isKey* (s: ARRAY OF WCHAR; lang, kwSet: INTEGER): BOOLEAN; -VAR - res: BOOLEAN; -BEGIN - DEC(kwSet); - res := FALSE; - CASE lang OF - |langC: res := checkKW(s, cKW[kwSet]) - |langOberon: res := checkKW(s, oberonKW[kwSet]) - |langPascal: res := checkKW(s, pascalKW[kwSet]) - |langLua: res := checkKW(s, luaKW[kwSet]) - |langIni: res := checkKW(s, iniKW[kwSet]) - |langFasm: res := checkKW(s, fasmKW[kwSet]) - |langJSON: res := checkKW(s, jsonKW[kwSet]) - END - RETURN res + RETURN checkKW(s, KW[lang][kwSet - 1]) END isKey; +PROCEDURE isDelim* (c: WCHAR): BOOLEAN; +VAR + res: BOOLEAN; +BEGIN + IF c <= 0FFX THEN + res := Delim[currentLang][ORD(c)] + ELSE + res := FALSE + END + RETURN res +END isDelim; + + PROCEDURE SkipString* (line: tLine; VAR pos: INTEGER; n: INTEGER); VAR quot: WCHAR; @@ -360,12 +364,21 @@ BEGIN END EnterKW; -PROCEDURE loadKW (VAR KW: ARRAY OF tKeyWords; getStr: procGetStr; lang: ARRAY OF CHAR); +PROCEDURE loadKW (VAR KW: ARRAY OF tKeyWords; VAR delim: tDelimiters; getStr: procGetStr; lang: ARRAY OF CHAR); VAR s: ARRAY 16*1024 OF CHAR; key: ARRAY 4 OF CHAR; i: INTEGER; BEGIN + FOR i := 0 TO LEN(delim) - 1 DO + delim[i] := FALSE + END; + getStr(lang, "delim", s); + i := 0; + WHILE s[i] # 0X DO + delim[ORD(s[i])] := TRUE; + INC(i) + END; key := "KW1"; FOR i := 0 TO 2 DO KW[i].cnt := 0; @@ -376,15 +389,23 @@ BEGIN END loadKW; +PROCEDURE setCurLang* (lang: INTEGER); +BEGIN + currentLang := lang +END setCurLang; + + PROCEDURE init* (getStr: procGetStr); BEGIN - loadKW(oberonKW, getStr, "lang_Oberon"); - loadKW(cKW, getStr, "lang_C"); - loadKW(pascalKW, getStr, "lang_Pascal"); - loadKW(luaKW, getStr, "lang_Lua"); - loadKW(iniKW, getStr, "lang_Ini"); - loadKW(fasmKW, getStr, "lang_Fasm"); - loadKW(jsonKW, getStr, "lang_JSON"); + currentLang := langText; + loadKW(KW[langText], Delim[langText], getStr, "lang_Text"); + loadKW(KW[langOberon], Delim[langOberon], getStr, "lang_Oberon"); + loadKW(KW[langC], Delim[langC], getStr, "lang_C"); + loadKW(KW[langPascal], Delim[langPascal], getStr, "lang_Pascal"); + loadKW(KW[langLua], Delim[langLua], getStr, "lang_Lua"); + loadKW(KW[langIni], Delim[langIni], getStr, "lang_Ini"); + loadKW(KW[langFasm], Delim[langFasm], getStr, "lang_Fasm"); + loadKW(KW[langJSON], Delim[langJSON], getStr, "lang_JSON"); END init; diff --git a/programs/develop/cedit/SRC/Text.ob07 b/programs/develop/cedit/SRC/Text.ob07 index 5c535971c1..aed18d7ce3 100644 --- a/programs/develop/cedit/SRC/Text.ob07 +++ b/programs/develop/cedit/SRC/Text.ob07 @@ -127,14 +127,16 @@ BEGIN text.lang := Lang.langJSON ELSE text.lang := Lang.langText - END + END; + Lang.setCurLang(text.lang) END setName; PROCEDURE setLang* (text: tText; lang: INTEGER); BEGIN text.lang := lang; - text.comments := TRUE + text.comments := TRUE; + Lang.setCurLang(text.lang) END setLang; @@ -293,11 +295,11 @@ VAR BEGIN SetColor(color, backColor); lexLen := MAX(MIN(line.length - lexStart, lexEnd - lexStart + 1), 0); - G.TextOut(canvas, padding.left + (lexStart - text.scroll.X) * charWidth, y, Lines.getPChar(line, lexStart), lexLen) + G.TextOut(canvas, padding.left + (lexStart - text.scroll.X) * charWidth, y, Lines.getPChar(line, lexStart), lexLen, color) END PrintLex; - PROCEDURE PrintComment (text: tText; line: tLine; VAR depth, i: INTEGER; y: INTEGER; backColor: INTEGER); + PROCEDURE PrintComment (text: tText; line: tLine; VAR depth, i: INTEGER; w, y: INTEGER; backColor: INTEGER); VAR lexStart: INTEGER; color: INTEGER; @@ -311,7 +313,7 @@ VAR ELSE color := colors.comment END; - lexStart := MAX(i - 2, 0); + lexStart := MAX(i - w, 0); ProcessComments(line, depth, i, 0, line.length - 1, text.lang); PrintLex(text, line, lexStart, i, y, color, backColor) END PrintComment; @@ -334,20 +336,6 @@ VAR END FL; - PROCEDURE isFASMdelim (c: WCHAR): BOOLEAN; - VAR - s: ARRAY 19 OF WCHAR; - i: INTEGER; - BEGIN - s := "{}[]<>:,()&*/|+-\#"; - i := LEN(s) - 2; - WHILE (i >= 0) & (c # s[i]) DO - DEC(i) - END - RETURN i >= 0 - END isFASMdelim; - - PROCEDURE ident (text: tText; VAR i: INTEGER; first, y: INTEGER; line: tLine; backColor: INTEGER; cs: BOOLEAN); VAR c: WCHAR; @@ -395,7 +383,7 @@ BEGIN n := line.length - 1; i := 0; IF (depth > 0) & (n >= 0) THEN - PrintComment(text, line, depth, i, y, backColor) + PrintComment(text, line, depth, i, 2, y, backColor) END; cond := 0; WHILE i <= n DO @@ -410,8 +398,6 @@ BEGIN String(text, line, i, y, backColor) ELSIF (U.isLetter(c) OR (c = "_")) THEN ident(text, i, i, y, line, backColor, Lang.isCS(lang)) - ELSIF isFASMdelim(c) THEN - PrintLex(text, line, i, i, y, colors.delim, backColor) ELSIF U.isDigit(c) THEN hex := FALSE; k := i; @@ -448,7 +434,7 @@ BEGIN ELSIF (c = "*") & (cond = 1) THEN depth := 1; INC(i); - PrintComment(text, line, depth, i, y, backColor); + PrintComment(text, line, depth, i, 2, y, backColor); cond := 0 ELSIF U.isLetter(c) OR (c = "_") OR (c = "'") OR (c = '"') THEN k := i; @@ -591,7 +577,7 @@ BEGIN IF cond = 1 THEN INC(depth); INC(i); - PrintComment(text, line, depth, i, y, backColor); + PrintComment(text, line, depth, i, 2, y, backColor); cond := 0 ELSE cond := 2 @@ -615,7 +601,7 @@ BEGIN IF Lang.LuaLong(line, i + 1) >= 0 THEN depth := Lang.LuaLong(line, i + 1)*2 + 1; INC(i); - PrintComment(text, line, depth, i, y, backColor) + PrintComment(text, line, depth, i, 2, y, backColor) ELSE PrintLex(text, line, i - 1, n, y, colors.comment, backColor); i := n @@ -630,7 +616,7 @@ BEGIN IF k >= 0 THEN depth := (k + 1)*2; INC(i, 2); - PrintComment(text, line, depth, i, y, backColor); + PrintComment(text, line, depth, i, 2, y, backColor); cond := 0 END ELSIF (c = "'") OR (c = '"') THEN @@ -698,7 +684,7 @@ BEGIN ELSIF (c = "*") & (cond = 1) THEN depth := 2; INC(i); - PrintComment(text, line, depth, i, y, backColor); + PrintComment(text, line, depth, i, 2, y, backColor); cond := 0 ELSIF c = "/" THEN IF cond = 2 THEN @@ -717,8 +703,8 @@ BEGIN ELSE depth := 1 END; - INC(i, 2); - PrintComment(text, line, depth, i, y, backColor); + INC(i); + PrintComment(text, line, depth, i, 1, y, backColor); cond := 0 ELSIF c = "#" THEN k := i; @@ -798,12 +784,10 @@ BEGIN i := n ELSIF c = '"' THEN String(text, line, i, y, backColor) - ELSIF c = "=" THEN - PrintLex(text, line, i, i, y, colors.delim, backColor) ELSIF c = "[" THEN depth := 1; - INC(i, 2); - PrintComment(text, line, depth, i, y, backColor) + INC(i); + PrintComment(text, line, depth, i, 1, y, backColor) ELSIF U.isDigit(c) THEN k := i; WHILE U.isDigit(getChar(line, i)) DO @@ -2014,7 +1998,7 @@ BEGIN x := pos*charWidth + padding.left; G.SetColor(canvas, colors.selback); G.FillRect(canvas, x - 2, y - inter DIV 2, x + 1 + Len*charWidth, y - inter DIV 2 + charHeight); - G.TextOut(canvas, pos*charWidth + padding.left, y, Lines.getPChar(line, firstCharIdx), Len) + G.TextOut(canvas, pos*charWidth + padding.left, y, Lines.getPChar(line, firstCharIdx), Len, colors.seltext) END drawSelect; @@ -2101,7 +2085,7 @@ BEGIN END; SetColor(colors.text, backColor); Len := MAX(line.length - text.scroll.X, 0); - G.TextOut(canvas, padding.left, y, Lines.getPChar(line, text.scroll.X), MIN(Len, textsize.X + 1)); + G.TextOut(canvas, padding.left, y, Lines.getPChar(line, text.scroll.X), MIN(Len, textsize.X + 1), colors.delim); IF text.lang # Lang.langText THEN parse(text, line, y, backColor, text.lang) END; @@ -2242,6 +2226,8 @@ BEGIN text.searchText := ""; text.foundSel := 0; text.CurX := -1; + text.lang := Lang.langText; + Lang.setCurLang(Lang.langText); setName(text, fileName); ASSERT(text = List.create(text)) RETURN text