234 lines
12 KiB
ObjectPascal
234 lines
12 KiB
ObjectPascal
unit ATSynEdit_Keymap_Init;
|
|
|
|
//{$define test_combo}
|
|
|
|
interface
|
|
|
|
uses
|
|
ATSynEdit_Keymap,
|
|
ATSynEdit_Commands;
|
|
|
|
procedure InitKeymapFull(var M: TATKeymap);
|
|
procedure InitKeymapCombo(var M: TATKeymap);
|
|
|
|
var
|
|
KeymapFull: TATKeymap = nil;
|
|
KeymapCombo: TATKeymap = nil;
|
|
|
|
implementation
|
|
|
|
uses
|
|
SysUtils,
|
|
LCLProc,
|
|
Dialogs;
|
|
|
|
const
|
|
//Mac: instead of Ctrl use Command-key
|
|
cXControl = {$ifdef darwin} 'Meta' {$else} 'Ctrl' {$endif};
|
|
|
|
|
|
procedure InitKeymapFull(var M: TATKeymap);
|
|
begin
|
|
M.Clear;
|
|
|
|
M.Add(cCommand_KeyLeft, 'caret char left', ['Left'], []);
|
|
M.Add(cCommand_KeyLeft_Sel, 'caret char left + select', ['Shift+Left'], []);
|
|
M.Add(cCommand_KeyRight, 'caret char right', ['Right'], []);
|
|
M.Add(cCommand_KeyRight_Sel, 'caret char right + select', ['Shift+Right'], []);
|
|
M.Add(cCommand_KeyUp, 'caret line up', ['Up'], []);
|
|
M.Add(cCommand_KeyUp_Sel, 'caret line up + select', ['Shift+Up'], []);
|
|
M.Add(cCommand_KeyDown, 'caret line down', ['Down'], []);
|
|
M.Add(cCommand_KeyDown_Sel, 'caret line down + select', ['Shift+Down'], []);
|
|
M.Add(cCommand_KeyHome, 'caret to line start', ['Home'], []);
|
|
M.Add(cCommand_KeyHome_Sel, 'caret to line start + select', ['Shift+Home'], []);
|
|
M.Add(cCommand_KeyEnd, 'caret to line end', ['End'], []);
|
|
M.Add(cCommand_KeyEnd_Sel, 'caret to line end + select', ['Shift+End'], []);
|
|
M.Add(cCommand_KeyPageUp, 'caret page up', ['PgUp'], []);
|
|
M.Add(cCommand_KeyPageUp_Sel, 'caret page up + select', ['Shift+PgUp'], []);
|
|
M.Add(cCommand_KeyPageDown, 'caret page down', ['PgDn'], []);
|
|
M.Add(cCommand_KeyPageDown_Sel, 'caret page down + select', ['Shift+PgDn'], []);
|
|
|
|
M.Add(cCommand_ColSelectLeft, 'column select: left', ['Shift+Alt+Left'], []);
|
|
M.Add(cCommand_ColSelectRight, 'column select: right', ['Shift+Alt+Right'], []);
|
|
M.Add(cCommand_ColSelectUp, 'column select: up', ['Shift+Alt+Up'], []);
|
|
M.Add(cCommand_ColSelectDown, 'column select: down', ['Shift+Alt+Down'], []);
|
|
M.Add(cCommand_ColSelectPageUp, 'column select: page up', ['Shift+Alt+PgUp'], []);
|
|
M.Add(cCommand_ColSelectPageDown, 'column select: page down', ['Shift+Alt+PgDn'], []);
|
|
M.Add(cCommand_ColSelectToLineBegin, 'column select: to line begin', ['Shift+Alt+Home'], []);
|
|
M.Add(cCommand_ColSelectToLineEnd, 'column select: to line end', ['Shift+Alt+End'], []);
|
|
|
|
M.Add(cCommand_KeyBackspace, 'delete char left (backspace)', ['Bksp'], []);
|
|
M.Add(cCommand_KeyDelete, 'delete char right (delete)', ['Del'], []);
|
|
M.Add(cCommand_KeyEnter, 'insert line-break (enter)', ['Enter'], []);
|
|
M.Add(cCommand_KeyTab, 'tabulation key', [], []);
|
|
M.Add(cCommand_TextInsertTabChar, 'insert tab char', [], []);
|
|
|
|
M.Add(cCommand_TextDeleteLine, 'delete line', [cXControl+'+Y'], []);
|
|
M.Add(cCommand_TextDuplicateLine, 'duplicate line', [cXControl+'+D'], []);
|
|
|
|
M.Add(cCommand_GotoTextBegin, 'goto text begin', [cXControl+'+Home'], []);
|
|
M.Add(cCommand_GotoTextBegin_Sel, 'goto text begin + select', [cXControl+'+Shift+Home'], []);
|
|
M.Add(cCommand_GotoTextEnd, 'goto text end', [cXControl+'+End'], []);
|
|
M.Add(cCommand_GotoTextEnd_Sel, 'goto text end + select', [cXControl+'+Shift+End'], []);
|
|
M.Add(cCommand_GotoWordPrev, 'goto word left', [cXControl+'+Left'], []);
|
|
M.Add(cCommand_GotoWordPrev_Sel, 'goto word left + select', [cXControl+'+Shift+Left'], []);
|
|
M.Add(cCommand_GotoWordNext, 'goto word right', [cXControl+'+Right'], []);
|
|
M.Add(cCommand_GotoWordNext_Sel, 'goto word right + select', [cXControl+'+Shift+Right'], []);
|
|
|
|
M.Add(cCommand_SelectAll, 'selection: select all', [cXControl+'+A'], []);
|
|
M.Add(cCommand_TextDeleteSelection, 'selection: delete selected text', [], []);
|
|
M.Add(cCommand_SelectInverted, 'selection: invert selection', [], []);
|
|
M.Add(cCommand_SelectSplitToLines, 'selection: split selection into lines', [], []);
|
|
M.Add(cCommand_SelectExtendByLine, 'selection: extend selection by line', [cXControl+'+L'], []);
|
|
M.Add(cCommand_SelectWords, 'selection: select words at carets', [], []);
|
|
M.Add(cCommand_SelectLines, 'selection: select lines at carets', [], []);
|
|
M.Add(cCommand_SelectNone, 'selection: cancel selection', [], []);
|
|
M.Add(cCommand_Cancel, 'selection: cancel carets, selection, drag-drop', ['Esc'], []);
|
|
|
|
M.Add(cCommand_ToggleOverwrite, 'toggle insert/overwrite mode', ['Ins'], []);
|
|
M.Add(cCommand_ToggleReadOnly, 'toggle read-only mode', ['Ctrl+Shift+R'], []);
|
|
M.Add(cCommand_ToggleWordWrap, 'toggle word-wrap mode', [cXControl+'+U'], []);
|
|
|
|
M.Add(cCommand_ToggleUnprinted, 'toggle unprinted chars: enable all', [], []);
|
|
M.Add(cCommand_ToggleUnprintedSpaces, 'toggle unprinted chars: spaces/tabs', [], []);
|
|
M.Add(cCommand_ToggleUnprintedEnds, 'toggle unprinted chars: ends', [], []);
|
|
M.Add(cCommand_ToggleUnprintedEndDetails, 'toggle unprinted chars: end details', [], []);
|
|
|
|
M.Add(cCommand_ToggleLineNums, 'toggle show line numbers', [], []);
|
|
M.Add(cCommand_ToggleFolding, 'toggle show folding bar', [], []);
|
|
M.Add(cCommand_ToggleRuler, 'toggle show ruler', [], []);
|
|
M.Add(cCommand_ToggleMinimap, 'toggle show minimap', [], []);
|
|
|
|
M.Add(cCommand_TextDeleteWordPrev, 'delete word left', [cXControl+'+Bksp'], []);
|
|
M.Add(cCommand_TextDeleteWordNext, 'delete word right', [cXControl+'+Del'], []);
|
|
M.Add(cCommand_TextDeleteToLineBegin, 'delete to line start', [], []);
|
|
M.Add(cCommand_TextDeleteToLineEnd, 'delete to line end', [cXControl+'+K'], []);
|
|
M.Add(cCommand_TextDeleteToTextEnd, 'delete to text end', [], []);
|
|
|
|
M.Add(cCommand_TextIndent, 'indent selection', [cXControl+'+I'], []);
|
|
M.Add(cCommand_TextUnindent, 'unindent selection', ['Shift+Tab'], []);
|
|
|
|
M.Add(cCommand_Undo, 'perform undo', [cXControl+'+Z'], []);
|
|
M.Add(cCommand_Redo, 'perform redo', [cXControl+'+Shift+Z'], []);
|
|
|
|
M.Add(cCommand_ClipboardCopy, 'clipboard: copy', [cXControl+'+C'], [cXControl+'+Ins']);
|
|
M.Add(cCommand_ClipboardCopyAdd, 'clipboard: copy/append', [], []);
|
|
M.Add(cCommand_ClipboardCut, 'clipboard: cut', [cXControl+'+X'], ['Shift+Del']);
|
|
M.Add(cCommand_ClipboardPaste, 'clipboard: paste', [cXControl+'+V'], ['Shift+Ins']);
|
|
M.Add(cCommand_ClipboardPaste_Select, 'clipboard: paste, select', [], []);
|
|
M.Add(cCommand_ClipboardPaste_KeepCaret, 'clipboard: paste, keep caret', [], []);
|
|
M.Add(cCommand_ClipboardPaste_Column, 'clipboard: paste, force column block', [], []);
|
|
M.Add(cCommand_ClipboardPaste_ColumnKeepCaret, 'clipboard: paste, force column block, keep caret', [], []);
|
|
|
|
M.Add(cCommand_ScrollLineUp, 'scroll line up', [cXControl+'+Up'], []);
|
|
M.Add(cCommand_ScrollLineDown, 'scroll line down', [cXControl+'+Down'], []);
|
|
M.Add(cCommand_ScrollToCaretTop, 'scroll to caret, top', [], []);
|
|
M.Add(cCommand_ScrollToCaretBottom, 'scroll to caret, bottom', [], []);
|
|
M.Add(cCommand_ScrollToCaretLeft, 'scroll to caret, left', [], []);
|
|
M.Add(cCommand_ScrollToCaretRight, 'scroll to caret, right', [], []);
|
|
|
|
M.Add(cCommand_MoveSelectionUp, 'move selected lines up', ['Alt+Up'], []);
|
|
M.Add(cCommand_MoveSelectionDown, 'move selected lines down', ['Alt+Down'], []);
|
|
M.Add(cCommand_TextInsertEmptyAbove, 'insert empty line above', [], []);
|
|
M.Add(cCommand_TextInsertEmptyBelow, 'insert empty line below', [], []);
|
|
|
|
M.Add(cCommand_CaretsExtendUpLine, 'carets extend: up a line', [], []);
|
|
M.Add(cCommand_CaretsExtendUpPage, 'carets extend: up a page', [], []);
|
|
M.Add(cCommand_CaretsExtendUpToTop, 'carets extend: up to top', [], []);
|
|
M.Add(cCommand_CaretsExtendDownLine, 'carets extend: down a line', [], []);
|
|
M.Add(cCommand_CaretsExtendDownPage, 'carets extend: down a page', [], []);
|
|
M.Add(cCommand_CaretsExtendDownToEnd, 'carets extend: down to end', [], []);
|
|
|
|
{$ifdef test_combo}
|
|
M.Add(cCommand_ZoomIn, 'zoom in', ['Ctrl+B', 'Ctrl+P'], []);
|
|
M.Add(cCommand_ZoomOut, 'zoom out', ['Ctrl+B', 'Ctrl+B', 'Ctrl+M'], []);
|
|
{$else}
|
|
M.Add(cCommand_ZoomIn, 'zoom in', [], []);
|
|
M.Add(cCommand_ZoomOut, 'zoom out', [], []);
|
|
{$endif}
|
|
|
|
M.Add(cCommand_TextCaseLower, 'convert case: lower case', [], []);
|
|
M.Add(cCommand_TextCaseUpper, 'convert case: upper case', [], []);
|
|
M.Add(cCommand_TextCaseTitle, 'convert case: title case', [], []);
|
|
M.Add(cCommand_TextCaseInvert, 'convert case: invert case', [], []);
|
|
M.Add(cCommand_TextCaseSentence, 'convert case: sentence case', [], []);
|
|
|
|
M.Add(cCommand_TextTrimSpacesLeft, 'trim spaces: left', [], []);
|
|
M.Add(cCommand_TextTrimSpacesRight, 'trim spaces: right', [], []);
|
|
M.Add(cCommand_TextTrimSpacesAll, 'trim spaces: all', [], []);
|
|
|
|
M.Add(cCommand_RepeatTextCommand, 'repeat last text command', [], []);
|
|
|
|
M.Add(cCommand_FoldAll, 'folding: fold all', [], []);
|
|
M.Add(cCommand_UnfoldAll, 'folding: unfold all', [], []);
|
|
M.Add(cCommand_FoldLevel2, 'folding: fold level 2', [], []);
|
|
M.Add(cCommand_FoldLevel3, 'folding: fold level 3', [], []);
|
|
M.Add(cCommand_FoldLevel4, 'folding: fold level 4', [], []);
|
|
M.Add(cCommand_FoldLevel5, 'folding: fold level 5', [], []);
|
|
M.Add(cCommand_FoldLevel6, 'folding: fold level 6', [], []);
|
|
M.Add(cCommand_FoldLevel7, 'folding: fold level 7', [], []);
|
|
M.Add(cCommand_FoldLevel8, 'folding: fold level 8', [], []);
|
|
M.Add(cCommand_FoldLevel9, 'folding: fold level 9', [], []);
|
|
end;
|
|
|
|
procedure InitKeymapCombo(var M: TATKeymap);
|
|
begin
|
|
M.Clear;
|
|
|
|
M.Add(cCommand_KeyLeft, 'caret char left', ['Left'], []);
|
|
M.Add(cCommand_KeyLeft_Sel, 'caret char left + select', ['Shift+Left'], []);
|
|
M.Add(cCommand_KeyRight, 'caret char right', ['Right'], []);
|
|
M.Add(cCommand_KeyRight_Sel, 'caret char right + select', ['Shift+Right'], []);
|
|
M.Add(cCommand_KeyHome, 'caret to line start', ['Home'], []);
|
|
M.Add(cCommand_KeyHome_Sel, 'caret to line start + select', ['Shift+Home'], []);
|
|
M.Add(cCommand_KeyEnd, 'caret to line end', ['End'], []);
|
|
M.Add(cCommand_KeyEnd_Sel, 'caret to line end + select', ['Shift+End'], []);
|
|
|
|
M.Add(cCommand_KeyBackspace, 'delete char left (backspace)', ['Bksp'], []);
|
|
M.Add(cCommand_KeyDelete, 'delete char right (delete)', ['Del'], []);
|
|
M.Add(cCommand_KeyEnter, 'insert line-break (enter)', ['Enter'], []);
|
|
M.Add(cCommand_KeyTab, 'tabulation key', [], []);
|
|
|
|
M.Add(cCommand_GotoWordPrev, 'goto word left', [cXControl+'+Left'], []);
|
|
M.Add(cCommand_GotoWordPrev_Sel, 'goto word left + select', [cXControl+'+Shift+Left'], []);
|
|
M.Add(cCommand_GotoWordNext, 'goto word right', [cXControl+'+Right'], []);
|
|
M.Add(cCommand_GotoWordNext_Sel, 'goto word right + select', [cXControl+'+Shift+Right'], []);
|
|
|
|
M.Add(cCommand_SelectAll, 'selection: select all', [cXControl+'+A'], []);
|
|
M.Add(cCommand_TextDeleteSelection, 'selection: delete selected text', [], []);
|
|
|
|
M.Add(cCommand_ToggleOverwrite, 'toggle insert/overwrite mode', ['Ins'], []);
|
|
|
|
M.Add(cCommand_TextDeleteWordPrev, 'delete word left', [cXControl+'+Bksp'], []);
|
|
M.Add(cCommand_TextDeleteWordNext, 'delete word right', [cXControl+'+Del'], []);
|
|
|
|
M.Add(cCommand_Undo, 'perform undo', [cXControl+'+Z'], []);
|
|
M.Add(cCommand_Redo, 'perform redo', [cXControl+'+Shift+Z'], []);
|
|
|
|
M.Add(cCommand_ClipboardCopy, 'clipboard: copy', [cXControl+'+C'], [cXControl+'+Ins']);
|
|
M.Add(cCommand_ClipboardCopyAdd, 'clipboard: copy/append', [], []);
|
|
M.Add(cCommand_ClipboardCut, 'clipboard: cut', [cXControl+'+X'], ['Shift+Del']);
|
|
M.Add(cCommand_ClipboardPaste, 'clipboard: paste', [cXControl+'+V'], ['Shift+Ins']);
|
|
|
|
M.Add(cCommand_ComboboxRecentsMenu, 'combobox: recent items menu', ['Alt+Down'], [cXControl+'+Down']);
|
|
|
|
M.Add(cCommand_KeyUp, 'blocked: caret line up', ['Up'], []);
|
|
M.Add(cCommand_KeyDown, 'blocked: caret line down', ['Down'], []);
|
|
M.Add(cCommand_KeyPageUp, 'blocked: caret page up', ['PgUp'], []);
|
|
M.Add(cCommand_KeyPageDown, 'blocked: caret page down', ['PgDn'], []);
|
|
end;
|
|
|
|
|
|
initialization
|
|
KeymapFull:= TATKeymap.Create;
|
|
KeymapCombo:= TATKeymap.Create;
|
|
InitKeymapFull(KeymapFull);
|
|
InitKeymapCombo(KeymapCombo);
|
|
|
|
finalization
|
|
FreeAndNil(KeymapFull);
|
|
FreeAndNil(KeymapCombo);
|
|
|
|
end.
|
|
|