From 63f51aa53be677a9741e78eb6a1d92ee861197db Mon Sep 17 00:00:00 2001 From: Anton Krotov Date: Sat, 27 Nov 2021 17:19:15 +0000 Subject: [PATCH] CEdit: ctrl+left/right moves the cursor to the next or previous word; small changes git-svn-id: svn://kolibrios.org@9336 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/develop/cedit/CEDIT | Bin 29856 -> 30072 bytes programs/develop/cedit/SHORTCUT.TXT | 4 +- programs/develop/cedit/SRC/CEdit.ob07 | 86 +++++++++++++--------- programs/develop/cedit/SRC/ChangeLog.ob07 | 2 +- programs/develop/cedit/SRC/Encodings.ob07 | 34 ++++----- programs/develop/cedit/SRC/Text.ob07 | 80 ++++++++++++++++++-- 6 files changed, 148 insertions(+), 58 deletions(-) diff --git a/programs/develop/cedit/CEDIT b/programs/develop/cedit/CEDIT index 3a41707e112df073ca254a40062cf70fa1bf00fd..aeeb71db34bd92f6b4cd170b33e7629be5febe1d 100644 GIT binary patch literal 30072 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 literal 29856 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 XQ*ZcDV3iu_Fg*D*+Usv53jhELOVjwt diff --git a/programs/develop/cedit/SHORTCUT.TXT b/programs/develop/cedit/SHORTCUT.TXT index 98b68279ae..6f57671d73 100644 --- a/programs/develop/cedit/SHORTCUT.TXT +++ b/programs/develop/cedit/SHORTCUT.TXT @@ -6,7 +6,8 @@ ctrl+X вырезать ctrl+L преобразовать в нижний регистр ctrl+U преобразовать в верхний регистр - ctrl+F показать панель поиска + ctrl+F, + ctrl+H показать панель поиска/замены Esc закрыть панель поиска; закрыть меню shift+Esc скрыть (свернуть) панель поиска F10 открыть главное меню @@ -40,3 +41,4 @@ перемещение по тексту: (ctrl+)Home, (ctrl+)End, (ctrl+)PageUp, (ctrl+)PageDown + ctrl+Left, ctrl+Right diff --git a/programs/develop/cedit/SRC/CEdit.ob07 b/programs/develop/cedit/SRC/CEdit.ob07 index 2621bf37d4..e91de17c04 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 (21-nov-2021)"; + HEADER = "CEdit (27-nov-2021)"; ShellFilter = ""; EditFilter = "SH|INC|TXT|ASM|OB07|C|CPP|H|PAS|PP|LUA|INI|JSON"; @@ -181,6 +181,7 @@ VAR AppPath, runScript, buildScript, debugScript: RW.tFileName; OD: OpenDlg.Dialog; confirm, notFound, menuFindClicked, search, searchOpened, modified: BOOLEAN; + eol, enc: INTEGER; switch, closing: BOOLEAN; leftButton: BOOLEAN; @@ -408,10 +409,12 @@ VAR s: ARRAY 24 OF WCHAR; header: RW.tFileName; BEGIN + eol := T.getEol(text); + enc := T.getEnc(text); s := ""; - U.append(s, RW.eolNames[text.eol]); + U.append(s, RW.eolNames[eol]); U.append(s, 20X + 20X); - U.append(s, E.names[text.enc]); + U.append(s, E.names[enc]); header := HEADER; IF text.fileName # "" THEN U.append8(header, " - "); @@ -462,7 +465,9 @@ BEGIN K.DrawRect(LEFT, TOP + canvas.height + scrollWidth, 16*fontWidth, BOTTOM - scrollWidth + 1, K.winColor); WritePos(y); - IF modified # text.modified THEN + IF (enc # T.getEnc(text)) OR (eol # T.getEol(text)) THEN + DrawState(text, width, height) + ELSIF modified # text.modified THEN WriteModified(width - 8*fontWidth, y) END; @@ -1137,10 +1142,10 @@ BEGIN CanvasToScreen(x, y) END ELSIF menu = menuEncoding THEN - Menu.option(menu, menuUTF8BOM, text.enc = E.UTF8BOM); - Menu.option(menu, menuUTF8, text.enc = E.UTF8); - Menu.option(menu, menuCP866, text.enc = E.CP866); - Menu.option(menu, menuWin1251, text.enc = E.W1251); + Menu.option(menu, menuUTF8BOM, T.getEnc(text) = E.UTF8BOM); + Menu.option(menu, menuUTF8, T.getEnc(text) = E.UTF8); + Menu.option(menu, menuCP866, T.getEnc(text) = E.CP866); + Menu.option(menu, menuWin1251, T.getEnc(text) = E.W1251); INC(x, menuEncodingX) ELSIF menu = menuView THEN Menu.check(menu, menuNumbers, text.numbers); @@ -1180,9 +1185,9 @@ BEGIN Menu.setEnabled(subCase, menuUpper, selected); Menu.setEnabled(subCase, menuLower, selected); - Menu.option(subEOL, menuCRLF, text.eol = RW.EOL_CRLF); - Menu.option(subEOL, menuLF, text.eol = RW.EOL_LF); - Menu.option(subEOL, menuCR, text.eol = RW.EOL_CR); + Menu.option(subEOL, menuCRLF, T.getEol(text) = RW.EOL_CRLF); + Menu.option(subEOL, menuLF, T.getEol(text) = RW.EOL_LF); + Menu.option(subEOL, menuCR, T.getEol(text) = RW.EOL_CR); IF menu # NIL THEN Timer.kill; @@ -1326,19 +1331,19 @@ BEGIN |menuDebugScript: setScript(debugScript) |menuUTF8BOM: - text.enc := E.UTF8BOM + T.setEnc(text, E.UTF8BOM) |menuUTF8: - text.enc := E.UTF8 + T.setEnc(text, E.UTF8) |menuCP866: - text.enc := E.CP866 + T.setEnc(text, E.CP866) |menuWin1251: - text.enc := E.W1251 + T.setEnc(text, E.W1251) |menuLF: - text.eol := RW.EOL_LF + T.setEol(text, RW.EOL_LF) |menuCRLF: - text.eol := RW.EOL_CRLF + T.setEol(text, RW.EOL_CRLF) |menuCR: - text.eol := RW.EOL_CR + T.setEol(text, RW.EOL_CR) |menuPipet: K.Run("/rd/1/develop/pipet", "") |menuBoard: @@ -1383,7 +1388,8 @@ BEGIN |21: menuItem := menuRedo |30: menuItem := menuSelectAll |32: menuItem := menuDuplicate - |33: menuItem := menuFind + |33, + 35: menuItem := menuFind |34: menuItem := menuGoto |44: menuItem := menuUndo |45: menuItem := menuCut @@ -1725,28 +1731,40 @@ BEGIN ELSIF (keyCode = 15) & ctrl THEN (* ctrl+Tab *) key := -1; SwitchTab((curText + 1) MOD textsCount) - ELSIF (keyCode = 33) & ctrl THEN + ELSIF ((keyCode = 33) OR (keyCode = 35)) & ctrl THEN (* ctrl+F, ctrl+H*) key := -1; ShowSearchPanel(FALSE) - ELSIF (keyCode = 34) & ctrl THEN + ELSIF (keyCode = 34) & ctrl THEN (* ctrl+G *) key := -1; ShowSearchPanel(TRUE) ELSE IF EditBox_Focus(FindEdit) THEN - EB.key(FindEdit, key); - EditBox_GetValue(FindEdit, new_searchText); - IF new_searchText # searchText THEN - searchText := new_searchText; - notFound := ~T.search(text, searchText, cs, whole) + IF keyCode = 15 THEN (* Tab *) + SetFocus(ReplaceEdit, TRUE) + ELSE + EB.key(FindEdit, key); + EditBox_GetValue(FindEdit, new_searchText); + IF new_searchText # searchText THEN + searchText := new_searchText; + notFound := ~T.search(text, searchText, cs, whole) + END END ELSIF EditBox_Focus(ReplaceEdit) THEN - EB.key(ReplaceEdit, key); - EditBox_GetValue(ReplaceEdit, replaceText) + IF keyCode = 15 THEN (* Tab *) + SetFocus(GotoEdit, TRUE) + ELSE + EB.key(ReplaceEdit, key); + EditBox_GetValue(ReplaceEdit, replaceText) + END ELSIF EditBox_Focus(GotoEdit) THEN - IF (key DIV 256) MOD 256 = 13 THEN - goto - ELSE - EB.key(GotoEdit, key) + IF keyCode = 15 THEN (* Tab *) + SetFocus(FindEdit, TRUE) + ELSE + IF (key DIV 256) MOD 256 = 13 THEN + goto + ELSE + EB.key(GotoEdit, key) + END END ELSE CASE keyCode OF @@ -2129,8 +2147,8 @@ BEGIN OD := OpenDlg.Create(draw_window, OpenDlg.topen, filePath, ""); insert(0, text); Scroll.init(ScrollChange); - Scroll.create(FALSE, canvas.width + 1, scrollWidth, scrollWidth, scrollWidth, hScroll); - Scroll.create(TRUE, scrollWidth, canvas.height + 1, scrollWidth, scrollWidth, vScroll); + Scroll.create(FALSE, canvas.width + 1, scrollWidth, scrollWidth, scrollWidth*3 DIV 2, hScroll); + Scroll.create(TRUE, scrollWidth, canvas.height + 1, scrollWidth, scrollWidth*3 DIV 2, vScroll); T.resize(canvas.width, canvas.height); T.SetPos(text, 0, 0); confirm := FALSE; diff --git a/programs/develop/cedit/SRC/ChangeLog.ob07 b/programs/develop/cedit/SRC/ChangeLog.ob07 index e05b365699..7d7e245407 100644 --- a/programs/develop/cedit/SRC/ChangeLog.ob07 +++ b/programs/develop/cedit/SRC/ChangeLog.ob07 @@ -242,7 +242,7 @@ BEGIN END changeBool2; -PROCEDURE changeInt (VAR v: INTEGER; x: INTEGER); +PROCEDURE changeInt* (VAR v: INTEGER; x: INTEGER); BEGIN changeWord(SYSTEM.ADR(v), SYSTEM.ADR(x)) END changeInt; diff --git a/programs/develop/cedit/SRC/Encodings.ob07 b/programs/develop/cedit/SRC/Encodings.ob07 index 6146293207..a99279fbbb 100644 --- a/programs/develop/cedit/SRC/Encodings.ob07 +++ b/programs/develop/cedit/SRC/Encodings.ob07 @@ -80,25 +80,25 @@ PROCEDURE InitCP866 (VAR cp: CP); VAR n, i: INTEGER; BEGIN - FOR i := 0410H TO 043FH DO - cp[i - 0410H + 80H] := i - END; - FOR i := 0440H TO 044FH DO - cp[i - 0440H + 0E0H] := i - END; - n := 0B0H; - Init8(cp, n, 2591H, 2592H, 2593H, 2502H, 2524H, 2561H, 2562H, 2556H); - Init8(cp, n, 2555H, 2563H, 2551H, 2557H, 255DH, 255CH, 255BH, 2510H); - Init8(cp, n, 2514H, 2534H, 252CH, 251CH, 2500H, 253CH, 255EH, 255FH); - Init8(cp, n, 255AH, 2554H, 2569H, 2566H, 2560H, 2550H, 256CH, 2567H); - Init8(cp, n, 2568H, 2564H, 2565H, 2559H, 2558H, 2552H, 2553H, 256BH); - Init8(cp, n, 256AH, 2518H, 250CH, 2588H, 2584H, 258CH, 2590H, 2580H); + FOR i := 0410H TO 043FH DO + cp[i - 0410H + 80H] := i + END; + FOR i := 0440H TO 044FH DO + cp[i - 0440H + 0E0H] := i + END; + n := 0B0H; + Init8(cp, n, 2591H, 2592H, 2593H, 2502H, 2524H, 2561H, 2562H, 2556H); + Init8(cp, n, 2555H, 2563H, 2551H, 2557H, 255DH, 255CH, 255BH, 2510H); + Init8(cp, n, 2514H, 2534H, 252CH, 251CH, 2500H, 253CH, 255EH, 255FH); + Init8(cp, n, 255AH, 2554H, 2569H, 2566H, 2560H, 2550H, 256CH, 2567H); + Init8(cp, n, 2568H, 2564H, 2565H, 2559H, 2558H, 2552H, 2553H, 256BH); + Init8(cp, n, 256AH, 2518H, 250CH, 2588H, 2584H, 258CH, 2590H, 2580H); - n := 0F0H; - Init8(cp, n, 0401H, 0451H, 0404H, 0454H, 0407H, 0457H, 040EH, 045EH); - Init8(cp, n, 00B0H, 2219H, 00B7H, 221AH, 2116H, 00A4H, 25A0H, 00A0H); + n := 0F0H; + Init8(cp, n, 0401H, 0451H, 0404H, 0454H, 0407H, 0457H, 040EH, 045EH); + Init8(cp, n, 00B0H, 2219H, 00B7H, 221AH, 2116H, 00A4H, 25A0H, 00A0H); - InitCP(cp) + InitCP(cp) END InitCP866; diff --git a/programs/develop/cedit/SRC/Text.ob07 b/programs/develop/cedit/SRC/Text.ob07 index f44c331c87..6a6cfaef96 100644 --- a/programs/develop/cedit/SRC/Text.ob07 +++ b/programs/develop/cedit/SRC/Text.ob07 @@ -72,7 +72,7 @@ TYPE search, cs, whole: BOOLEAN; curLine: tLine; lang*: INTEGER; - enc*, eol*: INTEGER; + enc, eol: INTEGER; table: Search.IdxTable; foundList: List.tList; idxData: Search.tBuffer; @@ -883,6 +883,36 @@ BEGIN END modify; +PROCEDURE setEnc* (text: tText; enc: INTEGER); +BEGIN + IF text.enc # enc THEN + ChangeLog.changeInt(text.enc, enc); + text.enc := enc; + modify(text) + END +END setEnc; + + +PROCEDURE setEol* (text: tText; eol: INTEGER); +BEGIN + IF text.eol # eol THEN + ChangeLog.changeInt(text.eol, eol); + text.eol := eol; + modify(text) + END +END setEol; + + +PROCEDURE getEnc* (text: tText): INTEGER; + RETURN text.enc +END getEnc; + + +PROCEDURE getEol* (text: tText): INTEGER; + RETURN text.eol +END getEol; + + PROCEDURE DelLine (text: tText; line: tLine); BEGIN List._delete(text, line); @@ -1801,9 +1831,32 @@ BEGIN END wordSel; +PROCEDURE getWordPos (line: tLine; pos: INTEGER): INTEGER; +VAR + c: WCHAR; + +BEGIN + c := getChar(line, pos); + IF isWordChar(c) THEN + WHILE (pos < line.length) & isWordChar(getChar(line, pos)) DO + INC(pos) + END + ELSIF Lines.isSpace(c) THEN + WHILE (pos < line.length) & Lines.isSpace(getChar(line, pos)) DO + INC(pos) + END + ELSE + WHILE (pos < line.length) & ~Lines.isSpace(getChar(line, pos)) & ~isWordChar(getChar(line, pos)) DO + INC(pos) + END + END + RETURN pos +END getWordPos; + + PROCEDURE key* (text: tText; code: INTEGER; shift, ctrl: BOOLEAN); VAR - n: INTEGER; + n, wPos: INTEGER; BEGIN IF shift THEN setSelect(text) @@ -1849,7 +1902,16 @@ BEGIN IF (text.cursor.X = 0) & (text.curLine.prev # NIL) THEN SetPos(text, text.curLine.prev(tLine).length, text.cursor.Y - 1) ELSE - move(text, -1) + IF ctrl THEN + wPos := 0; + REPEAT + n := wPos; + wPos := getWordPos(text.curLine, wPos) + UNTIL wPos >= text.cursor.X; + move(text, n - text.cursor.X) + ELSE + move(text, -1) + END END |38: IF ctrl THEN @@ -1861,7 +1923,11 @@ BEGIN IF (text.cursor.X = text.curLine.length) & (text.curLine.next # NIL) THEN SetPos(text, 0, text.cursor.Y + 1) ELSE - move(text, 1) + IF ctrl THEN + move(text, getWordPos(text.curLine, text.cursor.X) - text.cursor.X) + ELSE + move(text, 1) + END END |40: IF ctrl THEN @@ -1940,7 +2006,7 @@ BEGIN cursorX := text.cursor.X; line := text.curLine; x1 := cursorX - 1; - IF (cursorX < line.length) & isWordChar(getChar(line,cursorX)) THEN + IF (cursorX < line.length) & isWordChar(getChar(line, cursorX)) THEN x2 := cursorX; WHILE (x2 < line.length) & isWordChar(getChar(line, x2)) DO INC(x2) @@ -2292,6 +2358,8 @@ BEGIN file := RW.load(name, enc, eol); IF file # NIL THEN text := create(name); + ChangeLog.changeInt(text.enc, enc); + ChangeLog.changeInt(text.eol, eol); text.enc := enc; text.eol := eol; line := Lines.create(FALSE); @@ -2451,6 +2519,8 @@ BEGIN text := create(""); List._append(text, Lines.create(FALSE)); text.curLine := text.first(tLine); + ChangeLog.changeInt(text.enc, E.CP866); + ChangeLog.changeInt(text.eol, RW.EOL_CRLF); text.enc := E.CP866; text.eol := RW.EOL_CRLF; SetPos(text, 0, 0);