From fbb49920deac3febd9fe07b0d094f2db22885b6e Mon Sep 17 00:00:00 2001 From: Anton Krotov Date: Tue, 28 Mar 2023 22:27:10 +0000 Subject: [PATCH] CEdit: - highlight @@:/@f/@b/@r - numpad support git-svn-id: svn://kolibrios.org@9909 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/develop/cedit/CEDIT | Bin 33310 -> 33965 bytes programs/develop/cedit/SRC/CEdit.ob07 | 46 +++++- programs/develop/cedit/SRC/Lines.ob07 | 14 +- programs/develop/cedit/SRC/Search.ob07 | 25 ++-- programs/develop/cedit/SRC/Text.ob07 | 188 +++++++++++++++++++++---- programs/develop/cedit/SRC/Utils.ob07 | 7 + 6 files changed, 230 insertions(+), 50 deletions(-) diff --git a/programs/develop/cedit/CEDIT b/programs/develop/cedit/CEDIT index 6ea1a8e2ca341c8685728043d33e25eaa8cc6102..4140bce0a9c74218aaa0214d315a8fb1ba911eab 100644 GIT binary patch literal 33965 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 literal 33310 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 y=uRf!v4U7yy_I000L#n0mVa diff --git a/programs/develop/cedit/SRC/CEdit.ob07 b/programs/develop/cedit/SRC/CEdit.ob07 index 270b96804c..6cabac0f87 100644 --- a/programs/develop/cedit/SRC/CEdit.ob07 +++ b/programs/develop/cedit/SRC/CEdit.ob07 @@ -28,7 +28,7 @@ IMPORT RW, Ini, EB := EditBox, Tabs, Toolbar, SB := StatusBar; CONST - HEADER = "CEdit (18-mar-2023)"; + HEADER = "CEdit (29-mar-2023)"; ShellFilter = ""; EditFilter = "sh|inc|txt|asm|ob07|c|cpp|h|pas|pp|lua|ini|json"; @@ -412,6 +412,9 @@ BEGIN CheckBox.draw(CS); CheckBox.draw(WH); END; + IF ~search OR (searchText = "") THEN + T.wordSel(text) + END; drawText; NotFound; Replaced; @@ -1633,11 +1636,31 @@ END HideSearch; PROCEDURE KeyDown (key: INTEGER); VAR - keyCode: INTEGER; - shift, ctrl: BOOLEAN; + keyCode, ah: INTEGER; + shift, ctrl, rep: BOOLEAN; BEGIN K.getKBState(shift, ctrl); + rep := FALSE; keyCode := key DIV 65536; + + (* Numpad *) + ah := (key DIV 256) MOD 256; + CASE keyCode OF + |83: IF ah = 46 THEN keyCode := 52 END (* . / Del *) + |82: IF ah = 48 THEN keyCode := 11 END (* 0 / Ins *) + |79: IF ah = 49 THEN keyCode := 2 END (* 1 / End *) + |80: IF ah = 50 THEN keyCode := 3 END (* 2 / Down *) + |81: IF ah = 51 THEN keyCode := 4 END (* 3 / PgDn *) + |75: IF ah = 52 THEN keyCode := 5 END (* 4 / <- *) + |76: IF ah = 55 THEN keyCode := -1 END (* 5 / --- *) + |77: IF ah = 54 THEN keyCode := 7 END (* 6 / -> *) + |71: IF ah = 55 THEN keyCode := 8 END (* 7 / Home *) + |72: IF ah = 56 THEN keyCode := 9 END (* 8 / Up *) + |73: IF ah = 57 THEN keyCode := 10 END (* 9 / PgUp *) + ELSE + (* nothing to do *) + END; + IF confirm THEN IF keyCode = 28 THEN (* Enter *) save(text); @@ -1647,7 +1670,9 @@ BEGIN END; key := -1 ELSE - IF keyCode = 61 THEN (* F3 *) + IF keyCode = -1 THEN + key := -1 + ELSIF keyCode = 61 THEN (* F3 *) key := -1; IF search & (searchText # "") THEN IF shift THEN @@ -1779,17 +1804,26 @@ BEGIN END ELSE T.input(text, E.cp866[key DIV 256 MOD 256]); + IF key DIV 256 MOD 256 = 13 THEN + rep := TRUE + END; key := -1 END END; IF key >= 0 THEN - T.key(text, key, shift, ctrl) + T.key(text, key, shift, ctrl); + IF ((key = 38) OR (key = 40) OR (key = ORD("D"))) & ctrl THEN + rep := TRUE + END END END END END; IF key # -2 THEN - repaint + repaint; + IF rep THEN + repaint + END END END KeyDown; diff --git a/programs/develop/cedit/SRC/Lines.ob07 b/programs/develop/cedit/SRC/Lines.ob07 index 00f41286e8..f918545a41 100644 --- a/programs/develop/cedit/SRC/Lines.ob07 +++ b/programs/develop/cedit/SRC/Lines.ob07 @@ -231,14 +231,14 @@ END resize; PROCEDURE getChar* (line: tLine; i: INTEGER): WCHAR; VAR - res: WCHAR; + res: WCHAR; BEGIN - IF i >= line.length THEN - res := 0X - ELSE - SYSTEM.GET(line.ptr + i*WCHAR_SIZE, res) - END - RETURN res + IF (0 <= i) & (i < line.length) THEN + SYSTEM.GET(line.ptr + i*WCHAR_SIZE, res) + ELSE + res := 0X + END + RETURN res END getChar; diff --git a/programs/develop/cedit/SRC/Search.ob07 b/programs/develop/cedit/SRC/Search.ob07 index ffcf5e69d4..15dcd257fa 100644 --- a/programs/develop/cedit/SRC/Search.ob07 +++ b/programs/develop/cedit/SRC/Search.ob07 @@ -115,10 +115,24 @@ BEGIN END next; +PROCEDURE add* (list: List.tList; pos: INTEGER); +VAR + item: tPos; +BEGIN + item := list.last(tPos); + IF (item = NIL) OR (item.cnt = itemSize) THEN + NEW(item); + item.cnt := 0; + List.append(list, item) + END; + item.pos[item.cnt] := pos; + INC(item.cnt) +END add; + + PROCEDURE find* (text: tBuffer; s: ARRAY OF WCHAR; whole: BOOLEAN; list: List.tList; offset: INTEGER); VAR k, pos, n, i, x, prev_item_pos: INTEGER; - item: tPos; c1, c2: WCHAR; flag: BOOLEAN; BEGIN @@ -147,14 +161,7 @@ BEGIN END; IF ~flag & (x >= prev_item_pos) THEN prev_item_pos := x + n; - item := list.last(tPos); - IF (item = NIL) OR (item.cnt = itemSize) THEN - NEW(item); - item.cnt := 0; - List.append(list, item) - END; - item.pos[item.cnt] := x + offset; - INC(item.cnt) + add(list, x + offset) END END; INC(pos, SYSTEM.SIZE(INTEGER)); diff --git a/programs/develop/cedit/SRC/Text.ob07 b/programs/develop/cedit/SRC/Text.ob07 index f1d744dc76..0d539cc36f 100644 --- a/programs/develop/cedit/SRC/Text.ob07 +++ b/programs/develop/cedit/SRC/Text.ob07 @@ -878,17 +878,6 @@ VAR BEGIN - IF ~_copy THEN - cnt := -lenEOL; - line := text.first(tLine); - WHILE line # NIL DO - INC(cnt, lenEOL); - line.pos := cnt; - INC(cnt, line.length); - NextLine(line) - END - END; - first := getLine2(text, textStart.Y); line := first; @@ -926,9 +915,30 @@ BEGIN END plain; -PROCEDURE _search (text: tText; s: ARRAY OF WCHAR; cs, whole: BOOLEAN; textStart, textEnd: tPoint): BOOLEAN; +PROCEDURE ClearSearch (text: tText); VAR pos: List.tItem; + line: tLine; + cnt: INTEGER; +BEGIN + cnt := -lenEOL; + line := text.first(tLine); + WHILE line # NIL DO + INC(cnt, lenEOL); + line.pos := cnt; + INC(cnt, line.length); + NextLine(line) + END; + + WHILE text.foundList.count # 0 DO + pos := List.pop(text.foundList); + DISPOSE(pos) + END +END ClearSearch; + + +PROCEDURE _search (text: tText; s: ARRAY OF WCHAR; cs, whole: BOOLEAN; textStart, textEnd: tPoint): BOOLEAN; +VAR res: BOOLEAN; plainText, idxData: CB.tBuffer; first: tLine; @@ -937,10 +947,6 @@ BEGIN res := TRUE; plainText := NIL; idxData := NIL; - WHILE text.foundList.count # 0 DO - pos := List.pop(text.foundList); - DISPOSE(pos) - END; text.whole := whole; text.cs := cs; text.searchText := s; @@ -969,25 +975,148 @@ END _search; PROCEDURE search* (text: tText; s: ARRAY OF WCHAR; cs, whole: BOOLEAN): BOOLEAN; VAR textStart, textEnd: tPoint; -(* - PROCEDURE _getSelect (text: tText; VAR selBeg, selEnd: tPoint); - BEGIN - selBeg := text.cursor^; - selEnd := text.select^; - IF (selBeg.Y > selEnd.Y) OR (selBeg.Y = selEnd.Y) & (selBeg.X > selEnd.X) THEN - selBeg := text.select^; - selEnd := text.cursor^ - END - END _getSelect;*) - BEGIN textStart.Y := 0; textStart.X := 0; textEnd.Y := text.count - 1; textEnd.X := text.last(tLine).length; - //_getSelect(text, textStart, textEnd) + ClearSearch(text) RETURN _search(text, s, cs, whole, textStart, textEnd) END search; +PROCEDURE fasm_anon (text: tText); +VAR + textStart, textEnd: tPoint; + res, frw, back, label, anon_label: BOOLEAN; + Y1, Y2, i, k, j: INTEGER; + line, Label: tLine; + str: ARRAY 8 OF WCHAR; + + + PROCEDURE anon (line: tLine): BOOLEAN; + VAR + i: INTEGER; + BEGIN + i := leadingSpaces(line) + RETURN (Lines.getChar(line, i) = "@") & + (Lines.getChar(line, i + 1) = "@") & + (Lines.getChar(line, i + 2) = ":") + END anon; + + +BEGIN + frw := FALSE; + back := FALSE; + label := FALSE; + line := text.curLine; + + i := text.cursor.X; + j := 0; + FOR k := i - 3 TO i + 2 DO + str[j] := U.lcase(Lines.getChar(line, k)); + INC(j) + END; + j := 3; + + anon_label := anon(line); + + IF str[j] = "@" THEN + IF str[j + 1] = "f" THEN + frw := TRUE + ELSIF (str[j + 1] = "b") OR (str[j + 1] = "r") THEN + back := TRUE + ELSIF anon_label & (((str[j + 1] = "@") & (str[j + 2] = ":")) OR + ((str[j - 1] = "@") & (str[j + 1] = ":"))) THEN + label := TRUE + END + ELSIF str[j - 1] = "@" THEN + IF str[j] = "f" THEN + frw := TRUE + ELSIF (str[j] = "b") OR (str[j] = "r") THEN + back := TRUE + ELSIF anon_label & (str[j] = ":") & (str[j - 2] = "@") THEN + label := TRUE + END + ELSIF anon_label & (str[j] = ":") & (str[j - 1] = "@") & (str[j - 2] = "@") THEN + label := TRUE + ELSIF (str[j - 1] = "f") & (str[j - 2] = "@") THEN + frw := TRUE + ELSIF ((str[j - 1] = "b") OR (str[j - 1] = "r")) & (str[j - 2] = "@") THEN + back := TRUE + ELSIF anon_label & (str[j - 1] = ":") & (str[j - 2] = "@") & (str[j - 3] = "@") THEN + label := TRUE + END; + + IF back OR frw OR label THEN + Y1 := text.cursor.Y; + Y2 := Y1; + + IF label THEN + Label := line; + DEC(Y1) + ELSE + Label := NIL + END; + + line := getLine2(text, Y1); + WHILE (Y1 > 0) & ~anon(line) DO + PrevLine(line); + DEC(Y1) + END; + + line := getLine2(text, Y2); + IF anon(line) THEN + NextLine(line); + INC(Y2) + END; + + WHILE (Y2 < text.count) & ~anon(line) DO + NextLine(line); + INC(Y2) + END; + + IF Y1 < 0 THEN + Y1 := 0 + ELSIF back THEN + Label := getLine2(text, Y1) + END; + textStart.Y := Y1; textStart.X := 0; + IF Y2 = text.count THEN + DEC(Y2); + textEnd.X := text.last(tLine).length + ELSIF frw THEN + Label := getLine2(text, Y2); + textEnd.X := 0 + END; + textEnd.Y := Y2; + ClearSearch(text); + text.smallMove := FALSE; + IF (Label # NIL) & ~anon(Label) THEN + Label := NIL + END + END; + + IF frw THEN + res := _search(text, "@f", FALSE, FALSE, textStart, textEnd); + IF Label # NIL THEN + Search.add(text.foundList, Label.pos + leadingSpaces(Label)) + END + ELSIF back THEN + IF Label # NIL THEN + Search.add(text.foundList, Label.pos + leadingSpaces(Label)) + END; + res := _search(text, "@b", FALSE, FALSE, textStart, textEnd); + res := _search(text, "@r", FALSE, FALSE, textStart, textEnd) + ELSIF label THEN + res := _search(text, "@f", FALSE, FALSE, textStart, text.cursor^); + IF Label # NIL THEN + Search.add(text.foundList, Label.pos + leadingSpaces(Label)) + END; + res := _search(text, "@b", FALSE, FALSE, text.cursor^, textEnd); + res := _search(text, "@r", FALSE, FALSE, text.cursor^, textEnd) + END +END fasm_anon; + + PROCEDURE modify (text: tText); BEGIN text.modified := TRUE; @@ -2034,6 +2163,9 @@ BEGIN END; IF search(text, str, Lang.isCS(text.lang), TRUE) THEN END; text.wordSel := FALSE + END; + IF (text.lang = Lang.langFasm) & ~selected(text) THEN + fasm_anon(text) END END wordSel; diff --git a/programs/develop/cedit/SRC/Utils.ob07 b/programs/develop/cedit/SRC/Utils.ob07 index 73a4ff135e..2f47db88d0 100644 --- a/programs/develop/cedit/SRC/Utils.ob07 +++ b/programs/develop/cedit/SRC/Utils.ob07 @@ -200,6 +200,13 @@ BEGIN END lower; +PROCEDURE lcase* (ch: WCHAR): WCHAR; +BEGIN + IF lower(ch) THEN END + RETURN ch +END lcase; + + PROCEDURE lowcase* (VAR s: ARRAY OF WCHAR); VAR i: INTEGER;