1(* 2This Source Code Form is subject to the terms of the Mozilla Public 3License, v. 2.0. If a copy of the MPL was not distributed with this 4file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 6Copyright (c) Alexey Torgashin 7*) 8{$ifdef nn}begin end;{$endif} 9 10procedure TfmMain.TimerCmdTimer(Sender: TObject); 11var 12 Cmd: integer; 13 CmdInvoke: TATEditorCommandInvoke; 14 Frame: TEditorFrame; 15 Ed: TATSynEdit; 16 EdGrp: TATGroups; 17 NIndex: integer; 18 NColor: TColor; 19 Params: TAppVariantArray; 20begin 21 TimerCmd.Enabled:= false; 22 23 repeat 24 case AppCommandGet(Ed, Cmd, CmdInvoke) of 25 acgNoCommands: 26 Break; 27 acgBadCommand: 28 Continue; 29 end; 30 31 Frame:= TGroupsHelper.GetEditorFrame(Ed); 32 33 //support floating groups 34 if Assigned(Frame) then 35 EdGrp:= Frame.GetTabGroups 36 else 37 EdGrp:= Groups; 38 39 case Cmd of 40 41 cmd_FileClose: 42 begin 43 EdGrp.CloseTabs(tabCloseCurrent, false); 44 Frame:= CurrentFrame; 45 if Assigned(Frame) then 46 Frame.SetFocus; 47 end; 48 49 cmd_FileCloseAll: 50 begin 51 //EdGrp.CloseTabs(tabCloseAll, false); 52 DoCloseAllTabs; 53 Frame:= CurrentFrame; 54 if Assigned(Frame) then 55 Frame.SetFocus; 56 end; 57 58 cmd_FileCloseOtherThis: 59 begin 60 EdGrp.CloseTabs(tabCloseOthersThisPage, false); 61 end; 62 63 cmd_FileCloseOtherAll: 64 begin 65 EdGrp.CloseTabs(tabCloseOthersAllPages, false); 66 end; 67 68 cmd_FileCloseAndDelete: 69 begin 70 DoFileCloseAndDelete(Ed); 71 end; 72 73 cmd_FileNew: 74 DoFileNew; 75 76 cmd_FileNewMenu: 77 DoFileNewMenu(nil, CmdInvoke); 78 79 cmd_FileOpen: 80 DoFileOpenDialog; 81 82 cmd_FileOpen_TextViewer: 83 DoFileOpenDialog('/view-text /nozip /nopictures'); 84 85 cmd_FileOpen_HexViewer: 86 DoFileOpenDialog('/view-hex /nozip /nopictures'); 87 88 cmd_FileOpen_UnicodeViewer: 89 DoFileOpenDialog('/view-unicode /nozip /nopictures'); 90 91 cmd_FileOpenFolder: 92 DoFolderAdd(CmdInvoke); 93 94 cmd_FileOpen_NoPlugins: 95 DoFileOpenDialog_NoPlugins; 96 97 cmd_FileReopen: 98 DoFileReopen(Ed); 99 100 cmd_FileSave: 101 DoFileSave(Ed); 102 103 cmd_FileSaveAs: 104 DoFileSaveAs(Ed); 105 106 cmd_FileSaveAll: 107 DoFileSaveAll; 108 109 cmd_FileExit: 110 Close; 111 112 cmd_FileExportHtml: 113 begin 114 if Assigned(Frame) then 115 DoFileExportHtml(Frame); 116 end; 117 118 cmd_OpenContainingFolder: 119 begin 120 if Ed.FileName<>'' then 121 AppBrowseToFilenameInShell(Ed.FileName); 122 end; 123 124 cmd_OpenFileInDefaultApp: 125 begin 126 if Ed.FileName<>'' then 127 OpenURL(Ed.FileName); 128 end; 129 130 cmd_ToggleFocusSplitEditors: 131 begin 132 if Assigned(Frame) then 133 Frame.DoToggleFocusSplitEditors; 134 end; 135 136 cmd_FocusEditor: 137 DoFocusEditor(CurrentEditor); 138 139 cmd_FocusNotificationPanel: 140 begin 141 if Assigned(Frame) then 142 Frame.DoFocusNotificationPanel; 143 end; 144 145 cmd_HideNotificationPanels: 146 begin 147 if Assigned(Frame) then 148 Frame.DoHideNotificationPanels; 149 end; 150 151 cmd_ToggleFileNotifications: 152 begin 153 UiOps.NotificationEnabled:= not UiOps.NotificationEnabled; 154 if UiOps.NotificationEnabled then 155 if AppNotifThread=nil then 156 begin 157 AppNotifThread:= TAppNotifThread.Create(false); 158 AppNotifThread.Priority:= tpLower; 159 end; 160 end; 161 162 cmd_SwitchTab_HotkeyNext: 163 DoSwitchTab(true); 164 cmd_SwitchTab_HotkeyPrev: 165 DoSwitchTab(false); 166 cmd_SwitchTab_SimpleNext: 167 DoSwitchTabSimply(true); 168 cmd_SwitchTab_SimplePrev: 169 DoSwitchTabSimply(false); 170 cmd_SwitchTab_Dialog: 171 DoDialogMenuTabSwitcher; 172 cmd_SwitchTab_Recent: 173 DoSwitchTabToRecent; 174 175 cmd_DialogCommands: 176 DoDialogCommands; 177 178 cmd_DialogGoto: 179 DoDialogGoto; 180 181 cmd_DialogGotoBookmark: 182 DoDialogGotoBookmark; 183 184 cmd_DialogFind: 185 DoDialogFind(false); 186 187 cmd_DialogFind_Hide: 188 DoDialogFind_Hide; 189 190 cmd_DialogReplace: 191 DoDialogFind(true); 192 193 cmd_DialogSaveTabs: 194 DoDialogSaveTabs; 195 196 cmd_DialogLexerProp: 197 begin 198 if Assigned(Frame) then 199 DoDialogLexerProp(Frame.Lexer[Ed]); 200 end; 201 202 cmd_DialogLexerLib: 203 DoDialogLexerLib; 204 205 cmd_DialogLexerStyleMap: 206 DoDialogLexerMap; 207 208 cmd_DialogThemeUi: 209 DoDialogTheme(true); 210 211 cmd_DialogThemeSyntax: 212 DoDialogTheme(false); 213 214 cmd_DialogLexerMenu: 215 DoDialogLexerMenu; 216 217 cmd_DialogCharMap: 218 DoDialogCharMap; 219 220 cmd_ShowMainMenuAsPopup: 221 DoSidebar_MainMenuClick(nil); 222 223 cmd_ToggleFullScreen: 224 begin 225 DoToggleFullScreen; 226 FNeedUpdateMenuChecks:= true; 227 end; 228 cmd_ToggleDistractionFree: 229 begin 230 DoToggleDistractionFree; 231 FNeedUpdateMenuChecks:= true; 232 end; 233 234 cmd_ToggleSidePanel: 235 begin 236 DoToggleSidePanel; 237 FNeedUpdateMenuChecks:= true; 238 end; 239 cmd_ToggleBottomPanel: 240 begin 241 DoToggleBottomPanel; 242 FNeedUpdateMenuChecks:= true; 243 end; 244 245 cmd_ToggleFindDialog: 246 DoToggleFindReplaceDialog(false); 247 cmd_ToggleReplaceDialog: 248 DoToggleFindReplaceDialog(true); 249 250 cmd_ToggleSidebar: 251 begin 252 DoToggleSidebar; 253 FNeedUpdateMenuChecks:= true; 254 end; 255 256 cmd_ToggleToolbar: 257 begin 258 DoToggleToolbar; 259 FNeedUpdateMenuChecks:= true; 260 end; 261 262 cmd_ToggleStatusbar: 263 begin 264 DoToggleStatusbar; 265 FNeedUpdateMenuChecks:= true; 266 end; 267 268 cmd_ToggleUiTabs: 269 DoToggleUiTabs; 270 271 cmd_ToggleOnTop: 272 begin 273 DoToggleOnTop; 274 FNeedUpdateMenuChecks:= true; 275 end; 276 277 cmd_ToggleFloatSide: 278 begin 279 DoToggleFloatSide; 280 FNeedUpdateMenuChecks:= true; 281 end; 282 283 cmd_ToggleFloatBottom: 284 begin 285 DoToggleFloatBottom; 286 FNeedUpdateMenuChecks:= true; 287 end; 288 289 cmd_OpsReloadAndApply: 290 DoOps_LoadOptionsAndApplyAll; 291 292 cmd_ShowPanelConsole: 293 begin 294 DoShowConsole(false); 295 FNeedUpdateMenuChecks:= true; 296 end; 297 cmd_ShowPanelOutput: 298 begin 299 DoShowOutput(false); 300 FNeedUpdateMenuChecks:= true; 301 end; 302 cmd_ShowPanelValidate: 303 begin 304 DoShowValidate(false); 305 FNeedUpdateMenuChecks:= true; 306 end; 307 308 cmd_ShowPanelConsole_AndFocus: 309 begin 310 DoShowConsole(true); 311 FNeedUpdateMenuChecks:= true; 312 end; 313 cmd_ShowPanelOutput_AndFocus: 314 begin 315 DoShowOutput(true); 316 FNeedUpdateMenuChecks:= true; 317 end; 318 cmd_ShowPanelValidate_AndFocus: 319 begin 320 DoShowValidate(true); 321 FNeedUpdateMenuChecks:= true; 322 end; 323 324 cmd_ShowSidePanelAsIs: 325 begin 326 AppPanels[cPaneSide].Visible:= true; 327 FNeedUpdateMenuChecks:= true; 328 end; 329 330 cmd_ShowSidePanelAndSyntaxTree: 331 begin 332 AppPanels[cPaneSide].UpdatePanels(msgPanelTree_Init, false, true); 333 FNeedUpdateMenuChecks:= true; 334 end; 335 336 cmd_ToggleSidePanelAndSyntaxTree: 337 begin 338 if AppPanels[cPaneSide].Visible then 339 AppPanels[cPaneSide].Visible:= false 340 else 341 AppPanels[cPaneSide].UpdatePanels(msgPanelTree_Init, false, true); 342 FNeedUpdateMenuChecks:= true; 343 end; 344 345 cmd_HideSidePanel: 346 begin 347 AppPanels[cPaneSide].Visible:= false; 348 FNeedUpdateMenuChecks:= true; 349 end; 350 351 cmd_HideBottomPanel: 352 begin 353 AppPanels[cPaneOut].Visible:= false; 354 FNeedUpdateMenuChecks:= true; 355 end; 356 357 cmd_FindFirst: 358 DoFindFirst; 359 cmd_FindNext: 360 DoFindNext(true); 361 cmd_FindPrev: 362 DoFindNext(false); 363 364 cmd_FindAllAndSelect: 365 DoFindMarkAll(markingSelections); 366 cmd_FindAllAndMarkers: 367 DoFindMarkAll(markingMarkers); 368 cmd_FindAllAndBookmarks: 369 DoFindMarkAll(markingBookmarks); 370 371 cmd_FindCurWordNext: 372 DoFindCurrentWordOrSel(Ed, true, true); 373 cmd_FindCurWordPrev: 374 DoFindCurrentWordOrSel(Ed, false, true); 375 376 cmd_FindCurSelNext: 377 DoFindCurrentWordOrSel(Ed, true, false); 378 cmd_FindCurSelPrev: 379 DoFindCurrentWordOrSel(Ed, false, false); 380 381 cmd_SelectExpandToWord: 382 EditorExpandSelectionToWord(Ed, @FinderShowResultSimple, true); 383 cmd_SelectExpandToWord_Skip: 384 EditorExpandSelectionToWord(Ed, @FinderShowResultSimple, false); 385 386 cmd_OpsClearRecent: 387 DoOps_ClearConfigHistory([acheRecentFiles]); 388 cmd_OpsClearSearchHistory: 389 DoOps_ClearConfigHistory([acheSearch]); 390 cmd_OpsClearConsoleHistory: 391 DoOps_ClearConfigHistory([acheConsole]); 392 393 cmd_OpsOpenDefault: 394 DoOps_OpenFile_Default; 395 cmd_OpsOpenUser: 396 DoOps_OpenFile_User; 397 cmd_OpsOpenDefaultAndUser: 398 DoOps_OpenFile_DefaultAndUser; 399 cmd_OpsOpenLexerSpecific: 400 DoOps_OpenFile_LexerSpecific; 401 402 cmd_OpsFontText: 403 DoOps_DialogFont_Text; 404 cmd_OpsFontUi: 405 DoOps_DialogFont_Ui; 406 cmd_OpsFontOutput: 407 DoOps_DialogFont_Output; 408 409 cmd_OpsFontSizeBigger: 410 DoOps_FontSizeChange(1); 411 cmd_OpsFontSizeSmaller: 412 DoOps_FontSizeChange(-1); 413 cmd_OpsFontSizeReset: 414 DoOps_FontSizeReset; 415 416 cmd_FindPythonLib: 417 DoOps_FindPythonLib(nil); 418 419 cmd_ResetPythonPlugins: 420 DoPyResetPlugins; 421 422 cmd_RunLastCommandPlugin: 423 DoPyRunLastPlugin(CmdInvoke); 424 425 cmd_RescanPythonPluginsInfFiles: 426 DoPyRescanPlugins; 427 428 cmd_Groups1: 429 UpdateGroupsMode(gmOne); 430 cmd_Groups2horz: 431 UpdateGroupsMode(gm2h); 432 cmd_Groups2vert: 433 UpdateGroupsMode(gm2v); 434 cmd_Groups3horz: 435 UpdateGroupsMode(gm3h); 436 cmd_Groups3vert: 437 UpdateGroupsMode(gm3v); 438 cmd_Groups3plus: 439 UpdateGroupsMode(gm1plus2v); 440 cmd_Groups3plushorz: 441 UpdateGroupsMode(gm1plus2h); 442 cmd_Groups4horz: 443 UpdateGroupsMode(gm4h); 444 cmd_Groups4vert: 445 UpdateGroupsMode(gm4v); 446 cmd_Groups4grid: 447 UpdateGroupsMode(gm4grid); 448 cmd_Groups6horz: 449 UpdateGroupsMode(gm6h); 450 cmd_Groups6vert: 451 UpdateGroupsMode(gm6v); 452 cmd_Groups6grid: 453 UpdateGroupsMode(gm6grid); 454 455 cmd_GroupActivateNext: 456 Groups.PagesSetNext(true); 457 cmd_GroupActivatePrev: 458 Groups.PagesSetNext(false); 459 460 cmd_GroupActivate1: 461 Groups.PagesSetIndex(0); 462 cmd_GroupActivate2: 463 Groups.PagesSetIndex(1); 464 cmd_GroupActivate3: 465 Groups.PagesSetIndex(2); 466 cmd_GroupActivate4: 467 Groups.PagesSetIndex(3); 468 cmd_GroupActivate5: 469 Groups.PagesSetIndex(4); 470 cmd_GroupActivate6: 471 Groups.PagesSetIndex(5); 472 473 cmd_GroupActivateFloat1: 474 DoFormFocus(FFormFloatGroups1, true); 475 cmd_GroupActivateFloat2: 476 DoFormFocus(FFormFloatGroups2, true); 477 cmd_GroupActivateFloat3: 478 DoFormFocus(FFormFloatGroups3, true); 479 480 cmd_MoveTabToGroupNext: 481 Groups.MoveCurrentTabToNext(true); 482 cmd_MoveTabToGroupPrev: 483 Groups.MoveCurrentTabToNext(false); 484 485 cmd_MoveTabToGroup1: 486 DoMoveTabToGroup(0, true); 487 cmd_MoveTabToGroup2: 488 DoMoveTabToGroup(1, true); 489 490 cmd_MoveTabToGroupFloating1: 491 DoMoveTabToGroup(6, true); 492 cmd_MoveTabToGroupFloating2: 493 DoMoveTabToGroup(7, true); 494 cmd_MoveTabToGroupFloating3: 495 DoMoveTabToGroup(8, true); 496 497 cmd_CopyLine: 498 EditorCopyLine(Ed); 499 500 cmd_CopyFilenameFull: 501 begin 502 if Assigned(Frame) then 503 SClipboardCopy(Frame.GetFileName(Ed)); 504 end; 505 cmd_CopyFilenameDir: 506 begin 507 if Assigned(Frame) then 508 SClipboardCopy(ExtractFileDir(Frame.GetFileName(Ed))); 509 end; 510 cmd_CopyFilenameName: 511 begin 512 if Assigned(Frame) then 513 SClipboardCopy(ExtractFileName(Frame.GetFileName(Ed))); 514 end; 515 516 cmd_DuplicateLineEx: 517 begin 518 DoPyCommand_Cudaxlib(Ed, 'duplicate', CmdInvoke); 519 end; 520 521 cmd_AutoComplete: 522 DoAutoComplete(Ed); 523 524 cmd_GotoDefinition: 525 DoGotoDefinition(Ed); 526 527 cmd_ShowFunctionHint: 528 DoShowFuncHint(Ed); 529 530 cmd_MenuEnc: 531 begin 532 InitPopupEnc; 533 MenuShowAtEditorCorner(PopupEnc, CurrentEditor); 534 end; 535 cmd_MenuEnds: 536 begin 537 InitPopupEnds; 538 MenuShowAtEditorCorner(PopupEnds, CurrentEditor); 539 end; 540 cmd_MenuLexers: 541 begin 542 InitPopupLex; 543 MenuShowAtEditorCorner(PopupLex, CurrentEditor); 544 end; 545 546 cmd_SetTabColor: 547 begin 548 if Assigned(Frame) then 549 begin 550 NColor:= PyHelper_DialogColorPicker(Frame.TabColor); 551 if NColor>=0 then 552 Frame.TabColor:= NColor; 553 end; 554 end; 555 cmd_ResetTabColor: 556 begin 557 if Assigned(Frame) then 558 Frame.TabColor:= clNone; 559 end; 560 561 cmd_ToggleTabPinned: 562 begin 563 if Assigned(Frame) then 564 Frame.TabPinned:= not Frame.TabPinned; 565 end; 566 567 cmd_ChooseTranslation: 568 DoDialogMenuTranslations; 569 cmd_ChooseThemeUI: 570 DoDialogMenuThemes; 571 572 cmd_MacroStart: 573 begin 574 if Assigned(Frame) then 575 begin 576 Frame.DoMacroStartOrStop; 577 MsgStatus(''); 578 end; 579 end; 580 581 cmd_MacroStop: //deprecated at 2021.10 582 begin 583 if Assigned(Frame) then 584 begin 585 Frame.DoMacroStop(false); 586 MsgStatus(''); 587 end; 588 end; 589 590 cmd_MacroCancel: //deprecated at 2021.10 591 begin 592 if Assigned(Frame) then 593 begin 594 Frame.DoMacroStop(true); 595 MsgStatus(''); 596 end; 597 end; 598 599 cmd_TreeGotoNext: 600 DoTreeviewJump(CodeTree.Tree, treeGoNext); 601 cmd_TreeGotoPrev: 602 DoTreeviewJump(CodeTree.Tree, treeGoPrev); 603 cmd_TreeGotoParent: 604 DoTreeviewJump(CodeTree.Tree, treeGoParent); 605 cmd_TreeGotoNextBrother: 606 DoTreeviewJump(CodeTree.Tree, treeGoNextBro); 607 cmd_TreeGotoPrevBrother: 608 DoTreeviewJump(CodeTree.Tree, treeGoPrevBro); 609 cmd_TreeUpdate: 610 UpdateTree(true, false{ignore visible}); 611 cmd_TreeSelectBlockForCurNode: 612 DoCodetree_GotoBlockForCurrentNode(true); 613 cmd_TreeGotoBlockForCurNode: 614 DoCodetree_GotoBlockForCurrentNode(false); 615 cmd_TreeFilterClear: 616 CodeTreeFilter_ResetOnClick(nil); 617 cmd_TreeFilterFocus: 618 DoSidebar_FocusCodetreeFilter; 619 cmd_TreeFocus: 620 DoSidebar_FocusCodetree; 621 622 cmd_BracketHighlightOn: 623 begin 624 if Assigned(Frame) then 625 begin 626 Frame.BracketHilite:= true; 627 Frame.BracketHiliteUserChanged:= true; 628 end; 629 end; 630 cmd_BracketHighlightOff: 631 begin 632 if Assigned(Frame) then 633 begin 634 Frame.BracketHilite:= false; 635 Frame.BracketHiliteUserChanged:= true; 636 end; 637 end; 638 cmd_BracketHighlightToggle: 639 begin 640 if Assigned(Frame) then 641 begin 642 Frame.BracketHilite:= not Frame.BracketHilite; 643 Frame.BracketHiliteUserChanged:= true; 644 end; 645 end; 646 cmd_BracketJump: 647 begin 648 if Assigned(Frame) then 649 Frame.BracketJump(Ed); 650 end; 651 cmd_BracketSelect: 652 begin 653 if Assigned(Frame) then 654 Frame.BracketSelect(Ed); 655 end; 656 cmd_BracketSelectInside: 657 begin 658 if Assigned(Frame) then 659 Frame.BracketSelectInside(Ed); 660 end; 661 662 cmd_HelpAbout: 663 DoHelpAbout; 664 cmd_HelpForum: 665 DoHelpForum; 666 cmd_HelpWiki: 667 DoHelpWiki; 668 cmd_HelpIssues: 669 DoHelpIssues; 670 671 cmd_HelpCheckUpdates: 672 begin 673 if UiOps.AllowProgramUpdates then 674 begin 675 SetLength(Params, 0); 676 DoPyCommand('cuda_addonman', 'check_cudatext_updates', Params, CmdInvoke); 677 end; 678 end; 679 680 cmdFirstLexerCommand.. 681 cmdLastLexerCommand: 682 SetFrameLexerByIndex(Ed, Cmd-cmdFirstLexerCommand); 683 684 cmdFirstPluginCommand.. 685 cmdLastPluginCommand: 686 DoPyCommand_ByPluginIndex(Cmd-cmdFirstPluginCommand, CmdInvoke); 687 688 cmdFirstFileCommand.. 689 cmdLastFileCommand: 690 begin 691 NIndex:= Cmd-cmdFirstFileCommand; 692 if NIndex<AppFrameList1.Count then 693 begin 694 Frame:= TEditorFrame(AppFrameList1[NIndex]); 695 SetFrame(Frame); 696 Frame.SetFocus; 697 end; 698 end; 699 700 cmdFirstRecentCommand.. 701 cmdLastRecentCommand: 702 begin 703 NIndex:= Cmd-cmdFirstRecentCommand; 704 if NIndex<AppListRecents.Count then 705 DoFileOpen(AppListRecents[NIndex], ''); 706 end; 707 end; 708 until false; 709 710 UpdateStatusbar; 711end; 712 713procedure TfmMain.FrameOnEditorCommand(Sender: TObject; ACommand: integer; 714 AInvoke: TATEditorCommandInvoke; const AText: string; var AHandled: boolean); 715var 716 Ed: TATSynEdit; 717 Frame: TEditorFrame; 718 Params: TAppVariantArray; 719 Str: string; 720begin 721 AHandled:= true; 722 if not Groups.Enabled then Exit; 723 724 Ed:= Sender as TATSynEdit; 725 Frame:= TGroupsHelper.GetEditorFrame(Ed); 726 727 if Assigned(Frame) and Frame.MacroRecord then 728 if not AppPython.IsRunning then 729 if IsCommandForMacros(ACommand) then 730 begin 731 Str:= IntToStr(ACommand); 732 if ACommand=cCommand_TextInsert then 733 Str:= Str+','+AText; 734 Frame.MacroStrings.Add(Str); 735 end; 736 737 if (ACommand=cCommand_TextInsert) and 738 (AText<>'') then 739 begin 740 SetLength(Params, 1); 741 Params[0]:= AppVariant(AText); 742 if DoPyEvent(Ed, cEventOnInsert, Params).Val = evrFalse then 743 begin 744 AHandled:= true; 745 exit 746 end; 747 end; 748 749 //handle commands cmd_ 750 case ACommand of 751 cCommand_ToggleWordWrap, 752 cCommand_ToggleWordWrapAlt: 753 begin 754 UpdateStatusbar; 755 AHandled:= false; 756 exit 757 end; 758 759 cCommand_Cancel, 760 cCommand_CancelKeepLast, 761 cCommand_CancelKeepSel, 762 cCommand_CancelKeepLastAndSel: 763 begin 764 Ed.Markers.DeleteWithTag(UiOps.FindOccur_TagValue); 765 AHandled:= false; 766 end; 767 768 cmd_RepaintEditor: 769 begin 770 Ed.Update; 771 AHandled:= true; 772 exit 773 end; 774 775 cmd_ToggleTabUsesSpaces: 776 begin 777 Ed.OptTabSpaces:= not Ed.OptTabSpaces; 778 AHandled:= true; 779 exit 780 end; 781 cmd_ConvertTabsToSpaces: 782 begin 783 Ed.DoConvertTabsToSpaces; 784 AHandled:= true; 785 exit 786 end; 787 cmd_ConvertTabsToSpacesLeading: 788 begin 789 Ed.DoConvertIndentation(false); 790 AHandled:= true; 791 exit 792 end; 793 cmd_ConvertSpacesToTabsLeading: 794 begin 795 Ed.DoConvertIndentation(true); 796 AHandled:= true; 797 exit 798 end; 799 800 cmd_BookmarkToggle: 801 begin 802 if ed.Carets.Count>0 then 803 ed.BookmarkToggleForLine(ed.Carets[0].PosY, 1, '', bmadOption, true, 0); 804 UpdateFrameEx(Frame, false); 805 AHandled:= true; 806 exit 807 end; 808 cmd_BookmarkClearAll: 809 begin 810 ed.BookmarkDeleteAll; 811 UpdateFrameEx(Frame, false); 812 AHandled:= true; 813 exit 814 end; 815 cmd_BookmarkInvertAll: 816 begin 817 ed.BookmarkInvertAll; 818 UpdateFrameEx(Frame, false); 819 AHandled:= true; 820 exit 821 end; 822 cmd_BookmarkGotoNext: 823 begin 824 ed.BookmarkGotoNext(true, UiOps.FindIndentHorz, UiOps.FindIndentVert, true); 825 AHandled:= true; 826 exit 827 end; 828 cmd_BookmarkGotoPrev: 829 begin 830 ed.BookmarkGotoNext(false, UiOps.FindIndentHorz, UiOps.FindIndentVert, true); 831 AHandled:= true; 832 exit 833 end; 834 cmd_BookmarkPlaceCarets: 835 begin 836 Ed.BookmarkPlaceCaretsOnBookmarks; 837 AHandled:= true; 838 exit 839 end; 840 cmd_BookmarkPlaceBookmarksOnCarets: 841 begin 842 Ed.BookmarkPlaceBookmarksOnCarets; 843 AHandled:= true; 844 exit 845 end; 846 cmd_BookmarkCopyMarkedLines: 847 begin 848 Ed.BookmarkCopyMarkedLines; 849 AHandled:= true; 850 exit 851 end; 852 cmd_BookmarkDeleteMarkedLines: 853 begin 854 Ed.BookmarkDeleteMarkedLines; 855 AHandled:= true; 856 exit 857 end; 858 859 cmd_Markers_DropAtCaret: 860 begin 861 Ed.MarkerDrop; 862 UpdateStatusbar; 863 AHandled:= true; 864 exit 865 end; 866 867 cmd_Markers_GotoLastAndDelete: 868 begin 869 Ed.MarkerGotoLast(true, 870 UiOps.FindIndentHorz, 871 UiOps.FindIndentVert); 872 if Assigned(Frame) then 873 if Ed.Markers.Count=0 then 874 Frame.TabKeyCollectMarkers:= false; 875 UpdateStatusbar; 876 AHandled:= true; 877 exit 878 end; 879 880 cmd_Markers_GotoLastNoDelete: 881 begin 882 Ed.MarkerGotoLast(false, 883 UiOps.FindIndentHorz, 884 UiOps.FindIndentVert 885 ); 886 UpdateStatusbar; 887 AHandled:= true; 888 exit 889 end; 890 891 cmd_Markers_ClearAll: 892 begin 893 Ed.MarkerClearAll; 894 if Assigned(Frame) then 895 Frame.TabKeyCollectMarkers:= false; 896 UpdateStatusbar; 897 AHandled:= true; 898 exit 899 end; 900 901 cmd_Markers_SwapCaretAndMarker: 902 begin 903 Ed.MarkerSwap; 904 UpdateStatusbar; 905 AHandled:= true; 906 exit 907 end; 908 909 cmd_Markers_SelectToCaret: 910 begin 911 Ed.MarkerSelectToCaret; 912 UpdateStatusbar; 913 AHandled:= true; 914 exit 915 end; 916 917 cmd_Markers_DeleteToCaret: 918 begin 919 Ed.MarkerDeleteToCaret; 920 UpdateStatusbar; 921 AHandled:= true; 922 exit 923 end; 924 925 cmd_FoldingEnable: 926 begin 927 if Assigned(Frame) then 928 Frame.EnabledFolding:= true; 929 AHandled:= true; 930 exit 931 end; 932 cmd_FoldingDisable: 933 begin 934 if Assigned(Frame) then 935 Frame.EnabledFolding:= false; 936 AHandled:= true; 937 exit 938 end; 939 940 cmd_DeleteNewColorAttrs: 941 begin 942 EditorDeleteNewColorAttribs(Ed); 943 AHandled:= true; 944 exit 945 end; 946 947 cmd_LineEndWin: 948 begin 949 UpdateFrameLineEnds(Frame, cEndWin); 950 AHandled:= true; 951 exit 952 end; 953 cmd_LineEndUnix: 954 begin 955 UpdateFrameLineEnds(Frame, cEndUnix); 956 AHandled:= true; 957 exit 958 end; 959 cmd_LineEndMac: 960 begin 961 UpdateFrameLineEnds(Frame, cEndMac); 962 AHandled:= true; 963 exit 964 end; 965 966 cmd_SplitTabToggle: 967 begin 968 if Assigned(Frame) then 969 Frame.Splitted:= not Frame.Splitted; 970 AHandled:= true; 971 exit 972 end; 973 cmd_SplitTabHorzVert: 974 begin 975 if Assigned(Frame) then 976 Frame.SplitHorz:= not Frame.SplitHorz; 977 AHandled:= true; 978 exit 979 end; 980 981 cmd_SplitTabHorz: 982 begin 983 if Assigned(Frame) then 984 begin 985 Frame.SplitHorz:= true; 986 Frame.Splitted:= true; 987 end; 988 AHandled:= true; 989 exit 990 end; 991 cmd_SplitTabVert: 992 begin 993 if Assigned(Frame) then 994 begin 995 Frame.SplitHorz:= false; 996 Frame.Splitted:= true; 997 end; 998 AHandled:= true; 999 exit 1000 end; 1001 cmd_SplitTabNo: 1002 begin 1003 if Assigned(Frame) then 1004 Frame.Splitted:= false; 1005 AHandled:= true; 1006 exit 1007 end; 1008 1009 cmd_SplitTab3070: 1010 begin 1011 if Assigned(Frame) then 1012 Frame.SplitPos:= 0.7; 1013 AHandled:= true; 1014 exit 1015 end; 1016 cmd_SplitTab4060: 1017 begin 1018 if Assigned(Frame) then 1019 Frame.SplitPos:= 0.6; 1020 AHandled:= true; 1021 exit 1022 end; 1023 cmd_SplitTab5050: 1024 begin 1025 if Assigned(Frame) then 1026 Frame.SplitPos:= 0.5; 1027 AHandled:= true; 1028 exit 1029 end; 1030 cmd_SplitTab6040: 1031 begin 1032 if Assigned(Frame) then 1033 Frame.SplitPos:= 0.4; 1034 AHandled:= true; 1035 exit 1036 end; 1037 cmd_SplitTab7030: 1038 begin 1039 if Assigned(Frame) then 1040 Frame.SplitPos:= 0.3; 1041 AHandled:= true; 1042 exit 1043 end; 1044 1045 cmd_LinkAtCaret_Open: 1046 begin 1047 Str:= EditorGetLinkAtCaret(Ed); 1048 if Str<>'' then 1049 begin 1050 EditorOpenLink(Str); 1051 MsgStatus(msgStatusOpenedBrowser); 1052 end; 1053 AHandled:= true; 1054 exit 1055 end; 1056 1057 cmd_LinkAtCaret_Copy: 1058 begin 1059 Str:= EditorGetLinkAtCaret(Ed); 1060 if Str<>'' then 1061 begin 1062 SClipboardCopy(UTF8Encode(Str)); 1063 MsgStatus(msgStatusCopiedLink); 1064 end; 1065 AHandled:= true; 1066 exit 1067 end; 1068 1069 cmd_LinkAtPopup_Open: 1070 begin 1071 Str:= EditorGetLinkAtScreenCoord(Ed, PopupText.PopupPoint); 1072 if Str<>'' then 1073 begin 1074 EditorOpenLink(Str); 1075 MsgStatus(msgStatusOpenedBrowser); 1076 end; 1077 AHandled:= true; 1078 exit 1079 end; 1080 1081 cmd_LinkAtPopup_Copy: 1082 begin 1083 Str:= EditorGetLinkAtScreenCoord(Ed, PopupText.PopupPoint); 1084 if Str<>'' then 1085 begin 1086 SClipboardCopy(UTF8Encode(Str)); 1087 MsgStatus(msgStatusCopiedLink); 1088 end; 1089 AHandled:= true; 1090 exit 1091 end; 1092 1093 cmd_Encoding_utf8bom_NoReload: begin SetFrameEncoding(Ed, cEncNameUtf8_WithBom, false); AHandled:= true; exit end; 1094 cmd_Encoding_utf8nobom_NoReload: begin SetFrameEncoding(Ed, cEncNameUtf8_NoBom, false); AHandled:= true; exit end; 1095 cmd_Encoding_utf16le_NoReload: begin SetFrameEncoding(Ed, cEncNameUtf16LE_WithBom, false); AHandled:= true; exit end; 1096 cmd_Encoding_utf16be_NoReload: begin SetFrameEncoding(Ed, cEncNameUtf16BE_WithBom, false); AHandled:= true; exit end; 1097 cmd_Encoding_utf32le_NoReload: begin SetFrameEncoding(Ed, cEncNameUtf32LE_WithBom, false); AHandled:= true; exit end; 1098 cmd_Encoding_utf32be_NoReload: begin SetFrameEncoding(Ed, cEncNameUtf32BE_WithBom, false); AHandled:= true; exit end; 1099 cmd_Encoding_cp1250_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1250], false); AHandled:= true; exit end; 1100 cmd_Encoding_cp1251_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1251], false); AHandled:= true; exit end; 1101 cmd_Encoding_cp1252_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1252], false); AHandled:= true; exit end; 1102 cmd_Encoding_cp1253_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1253], false); AHandled:= true; exit end; 1103 cmd_Encoding_cp1254_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1254], false); AHandled:= true; exit end; 1104 cmd_Encoding_cp1255_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1255], false); AHandled:= true; exit end; 1105 cmd_Encoding_cp1256_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1256], false); AHandled:= true; exit end; 1106 cmd_Encoding_cp1257_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1257], false); AHandled:= true; exit end; 1107 cmd_Encoding_cp1258_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1258], false); AHandled:= true; exit end; 1108 cmd_Encoding_mac_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCPMac], false); AHandled:= true; exit end; 1109 cmd_Encoding_iso1_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidISO1], false); AHandled:= true; exit end; 1110 cmd_Encoding_iso2_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidISO2], false); AHandled:= true; exit end; 1111 cmd_Encoding_iso15_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidISO15], false); AHandled:= true; exit end; 1112 cmd_Encoding_cp437_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP437], false); AHandled:= true; exit end; 1113 cmd_Encoding_cp850_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP850], false); AHandled:= true; exit end; 1114 cmd_Encoding_cp852_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP852], false); AHandled:= true; exit end; 1115 cmd_Encoding_cp866_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP866], false); AHandled:= true; exit end; 1116 cmd_Encoding_cp874_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP874], false); AHandled:= true; exit end; 1117 cmd_Encoding_cp932_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP932], false); AHandled:= true; exit end; 1118 cmd_Encoding_cp936_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP936], false); AHandled:= true; exit end; 1119 cmd_Encoding_cp949_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP949], false); AHandled:= true; exit end; 1120 cmd_Encoding_cp950_NoReload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP950], false); AHandled:= true; exit end; 1121 1122 cmd_Encoding_utf8bom_Reload: begin SetFrameEncoding(Ed, cEncNameUtf8_WithBom, true); AHandled:= true; exit end; 1123 cmd_Encoding_utf8nobom_Reload: begin SetFrameEncoding(Ed, cEncNameUtf8_NoBom, true); AHandled:= true; exit end; 1124 cmd_Encoding_utf16le_Reload: begin SetFrameEncoding(Ed, cEncNameUtf16LE_WithBom, true); AHandled:= true; exit end; 1125 cmd_Encoding_utf16be_Reload: begin SetFrameEncoding(Ed, cEncNameUtf16BE_WithBom, true); AHandled:= true; exit end; 1126 cmd_Encoding_utf32le_Reload: begin SetFrameEncoding(Ed, cEncNameUtf32LE_WithBom, true); AHandled:= true; exit end; 1127 cmd_Encoding_utf32be_Reload: begin SetFrameEncoding(Ed, cEncNameUtf32BE_WithBom, true); AHandled:= true; exit end; 1128 cmd_Encoding_cp1250_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1250], true); AHandled:= true; exit end; 1129 cmd_Encoding_cp1251_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1251], true); AHandled:= true; exit end; 1130 cmd_Encoding_cp1252_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1252], true); AHandled:= true; exit end; 1131 cmd_Encoding_cp1253_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1253], true); AHandled:= true; exit end; 1132 cmd_Encoding_cp1254_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1254], true); AHandled:= true; exit end; 1133 cmd_Encoding_cp1255_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1255], true); AHandled:= true; exit end; 1134 cmd_Encoding_cp1256_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1256], true); AHandled:= true; exit end; 1135 cmd_Encoding_cp1257_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1257], true); AHandled:= true; exit end; 1136 cmd_Encoding_cp1258_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP1258], true); AHandled:= true; exit end; 1137 cmd_Encoding_mac_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCPMac], true); AHandled:= true; exit end; 1138 cmd_Encoding_iso1_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidISO1], true); AHandled:= true; exit end; 1139 cmd_Encoding_iso2_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidISO2], true); AHandled:= true; exit end; 1140 cmd_Encoding_iso15_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidISO15], true); AHandled:= true; exit end; 1141 cmd_Encoding_cp437_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP437], true); AHandled:= true; exit end; 1142 cmd_Encoding_cp850_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP850], true); AHandled:= true; exit end; 1143 cmd_Encoding_cp852_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP852], true); AHandled:= true; exit end; 1144 cmd_Encoding_cp866_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP866], true); AHandled:= true; exit end; 1145 cmd_Encoding_cp874_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP874], true); AHandled:= true; exit end; 1146 cmd_Encoding_cp932_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP932], true); AHandled:= true; exit end; 1147 cmd_Encoding_cp936_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP936], true); AHandled:= true; exit end; 1148 cmd_Encoding_cp949_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP949], true); AHandled:= true; exit end; 1149 cmd_Encoding_cp950_Reload: begin SetFrameEncoding(Ed, cEncConvNames[eidCP950], true); AHandled:= true; exit end; 1150 end; 1151 1152 //handle other cmd_ commands 1153 if (ACommand>=cmdFirstAppCommand) and 1154 (ACommand<=cmdLastAppCommand) then 1155 begin 1156 AppCommandPut(Ed, ACommand, AInvoke, false); 1157 exit; 1158 end; 1159 1160 case ACommand of 1161 cCommand_KeyTab: 1162 begin 1163 if Assigned(Frame) then 1164 AHandled:= Frame.TabKeyCollectMarkers and (Ed.Markers.Count>0) 1165 else 1166 AHandled:= false; 1167 if AHandled then 1168 begin 1169 Ed.MarkerGotoLast(true, 1170 UiOps.FindIndentHorz, 1171 UiOps.FindIndentVert); 1172 if Ed.Markers.Count=0 then 1173 Frame.TabKeyCollectMarkers:= false; 1174 end; 1175 end; 1176 1177 cmd_MouseClickAtCursor: 1178 EditorMouseClick_AtCursor(Ed, false); 1179 cmd_MouseClickAtCursorAndSelect: 1180 EditorMouseClick_AtCursor(Ed, true); 1181 cmd_MouseClickNearCaret: 1182 EditorMouseClick_NearCaret(Ed, AText, false); 1183 cmd_MouseClickNearCaretAndSelect: 1184 EditorMouseClick_NearCaret(Ed, AText, true); 1185 cmd_FinderAction: 1186 DoFindActionFromString(AText); 1187 cmd_GotoLastEditingPos: 1188 EditorGotoLastEditingPos(Ed, UiOps.FindIndentHorz, UiOps.FindIndentVert); 1189 1190 else 1191 AHandled:= false; 1192 end; 1193end; 1194 1195 1196