anchor.diff:    CodeTreeFilterInput.OnCommand:= @CodeTreeFilter_OnCommand;
   end;
   
  -procedure TfmMain.FormCreate(Sender: TObject);
  -var
  -  NTick: QWord;
  -  i: integer;
  -begin
  -  OnEnter:= @FormEnter;
  -
  -  mnuHelpCheckUpd.Enabled:= UiOps.AllowProgramUpdates;
  -
  -  with AppPanels[cPaneSide] do
  -  begin
  -    PanelRoot:= Self.PanelMain;
  -    Toolbar:= ToolbarSideTop;
  -    DefaultPanel:= msgPanelTree_Init;
  -    OnCommand:= @DoSidebar_OnPythonCall;
  -    OnCloseFloatForm:= @DoSidebar_OnCloseFloatForm;
  -    OnGetTranslatedTitle:= @DoSidebar_GetFormTitle;
  -    Init(Self, alLeft);
  -    Splitter.OnPaint:= @SplitterOnPaintDummy;
  -  end;
  -
  -  with AppPanels[cPaneOut] do
  -  begin
  -    PanelRoot:= Self.PanelAll;
  -    Toolbar:= ToolbarSideLow;
  -    OnHide:= @DoBottom_OnHide;
  -    OnCommand:= @DoSidebar_OnPythonCall;
  -    OnCloseFloatForm:= @DoBottom_OnCloseFloatForm;
  -    OnGetTranslatedTitle:= @DoSidebar_GetFormTitle;
  -    Init(Self, alBottom);
  -    Splitter.OnPaint:= @SplitterOnPaintDummy;
  -  end;
  -
  -  {
  -  LexerProgress:= TATGauge.Create(Self);
  -  LexerProgress.Parent:= Status;
  -  }
  -
  -  OnLexerParseProgress:= @DoOnLexerParseProgress;
  -  CustomDialog_DoPyCallback:= @DoPyCallbackFromAPI;
  -  CustomDialog_OnEditorCommand:= @FrameOnEditorCommand;
  -  FFileNameLogDebug:= AppDir_Settings+DirectorySeparator+'app.log';
  -  FFileNameLogConsole:= AppDir_Settings+DirectorySeparator+'console.log';
  -
  -  DoMenuitemEllipsis(mnuOpThemeUi);
  -  DoMenuitemEllipsis(mnuOpThemeSyntax);
  -  //DoMenuitemEllipsis(mnuOpKeys);
  -  DoMenuitemEllipsis(mnuOpThemes);
  -  DoMenuitemEllipsis(mnuOpLangs);
  -
  -  PopupToolbarCase:= TPopupMenu.Create(Self);
  -  PopupToolbarCase.OnPopup:= @PopupToolbarCaseOnPopup;
  -
  -  PopupToolbarComment:= TPopupMenu.Create(Self);
  -  PopupToolbarComment.OnPopup:= @PopupToolbarCommentOnPopup;
  -
  -  {$ifdef windows}
  -  if not AppAlwaysNewInstance and IsSetToOneInstance then
  -    with TInstanceManage.GetInstance do
  -      case Status of
  -        isFirst:
  -          begin
  -            SetFormHandleForActivate(Self.Handle);
  -            OnSecondInstanceSentData := @SecondInstance;
  -          end;
  -      end;
  -  {$endif}
  -
  -  FBoundsMain:= Rect(100, 100, 900, 700);;
  -  AppPanels[cPaneSide].FormFloatBounds:= Rect(650, 50, 900, 700);
  -  AppPanels[cPaneOut].FormFloatBounds:= Rect(50, 480, 900, 700);
  -  FBoundsFloatGroups1:= Rect(300, 100, 800, 700);
  -  FBoundsFloatGroups2:= Rect(320, 120, 820, 720);
  -  FBoundsFloatGroups3:= Rect(340, 140, 840, 740);
  -
  -  InitAppleMenu;
  -  InitToolbar;
  -  InitCodeTree;
  -  InitBottomEditor(fmOutput);
  -  InitBottomEditor(fmValidate);
  -
  -  NTick:= GetTickCount64;
  -  InitConsole;
  -  fmConsole.OnConsoleNav:= @DoPyEvent_ConsoleNav;
  -  fmConsole.OnNumberChange:= @DoOnConsoleNumberChange;
  -  if UiOps.LogConsoleDetailedStartupTime then
  -  begin
  -    NTick:= GetTickCount64-NTick;
  -    MsgLogConsole(Format('Loaded console form: %dms', [NTick]));
  -  end;
  -
  -  InitSidebar; //after initing PanelCodeTreeAll, EditorOutput, EditorValidate, fmConsole
  -
  -  AppBookmarkImagelist.AddImages(ImageListBm);
  -  for i:= 2 to 9 do
  -  begin
  -    AppBookmarkSetup[i].Color:= clDefault;
  -    AppBookmarkSetup[i].ImageIndex:= i-1;
  -  end;
  -
  -  FMenuVisible:= true;
  -  AppSessionName:= '';
  -  FListTimers:= TStringList.Create;
  -  FLastStatusbarMessages:= TStringList.Create;
  -  FLastStatusbarMessages.TextLineBreakStyle:= tlbsLF;
  -
  +procedure TfmMain.InitStatusbar;
  +begin
     Status:= TATStatus.Create(Self);
     Status.Parent:= Self;
     Status.Align:= alBottom;
  
positive.code:   Status.OnPanelClick:= @StatusPanelClick;
    Status.ShowHint:= true;
    Status.Theme:= @AppThemeStatusbar;
  
    Groups:= TATGroups.Create(Self);
    Groups.Parent:= PanelEditors;
    Groups.Align:= alClient;
  
negative.code:   Groups.OnTabPopup:= @DoOnTabPopup;
    //Groups.OnTabOver:= @DoOnTabOver;
    Groups.OnTabGetTick:= @DoOnTabGetTick;
  end;
  
  procedure TfmMain.InitFinder;
  begin
    FFinder:= TATEditorFinder.Create;
    FFinder.OnConfirmReplace:= @FinderOnConfirmReplace;
    FFinder.OnProgress:= @FinderOnProgress;
    FFinder.OnFound:=@FinderOnFound;
    FFinder.OnGetToken:= @FinderOnGetToken;
  end;
  
  procedure TfmMain.FormCreate(Sender: TObject);
  var
    NTick: QWord;
    i: integer;
  begin
    OnEnter:= @FormEnter;
  
    mnuHelpCheckUpd.Enabled:= UiOps.AllowProgramUpdates;
  
    with AppPanels[cPaneSide] do
    begin
      PanelRoot:= Self.PanelMain;
      Toolbar:= ToolbarSideTop;
      DefaultPanel:= msgPanelTree_Init;
      OnCommand:= @DoSidebar_OnPythonCall;
      OnCloseFloatForm:= @DoSidebar_OnCloseFloatForm;
      OnGetTranslatedTitle:= @DoSidebar_GetFormTitle;
      Init(Self, alLeft);
      Splitter.OnPaint:= @SplitterOnPaintDummy;
    end;
  
    with AppPanels[cPaneOut] do
    begin
      PanelRoot:= Self.PanelAll;
      Toolbar:= ToolbarSideLow;
      OnHide:= @DoBottom_OnHide;
      OnCommand:= @DoSidebar_OnPythonCall;
      OnCloseFloatForm:= @DoBottom_OnCloseFloatForm;
      OnGetTranslatedTitle:= @DoSidebar_GetFormTitle;
      Init(Self, alBottom);
      Splitter.OnPaint:= @SplitterOnPaintDummy;
    end;
  
    {
    LexerProgress:= TATGauge.Create(Self);
    LexerProgress.Parent:= Status;
    }
  
    OnLexerParseProgress:= @DoOnLexerParseProgress;
    CustomDialog_DoPyCallback:= @DoPyCallbackFromAPI;
    CustomDialog_OnEditorCommand:= @FrameOnEditorCommand;
    FFileNameLogDebug:= AppDir_Settings+DirectorySeparator+'app.log';
    FFileNameLogConsole:= AppDir_Settings+DirectorySeparator+'console.log';
  
    DoMenuitemEllipsis(mnuOpThemeUi);
    DoMenuitemEllipsis(mnuOpThemeSyntax);
    //DoMenuitemEllipsis(mnuOpKeys);
    DoMenuitemEllipsis(mnuOpThemes);
    DoMenuitemEllipsis(mnuOpLangs);
  
    PopupToolbarCase:= TPopupMenu.Create(Self);
    PopupToolbarCase.OnPopup:= @PopupToolbarCaseOnPopup;
  
    PopupToolbarComment:= TPopupMenu.Create(Self);
    PopupToolbarComment.OnPopup:= @PopupToolbarCommentOnPopup;
  
    {$ifdef windows}
    if not AppAlwaysNewInstance and IsSetToOneInstance then
      with TInstanceManage.GetInstance do
        case Status of
          isFirst:
            begin
              SetFormHandleForActivate(Self.Handle);
              OnSecondInstanceSentData := @SecondInstance;
            end;
        end;
    {$endif}
  
    FBoundsMain:= Rect(100, 100, 900, 700);;
    AppPanels[cPaneSide].FormFloatBounds:= Rect(650, 50, 900, 700);
    AppPanels[cPaneOut].FormFloatBounds:= Rect(50, 480, 900, 700);
    FBoundsFloatGroups1:= Rect(300, 100, 800, 700);
    FBoundsFloatGroups2:= Rect(320, 120, 820, 720);
    FBoundsFloatGroups3:= Rect(340, 140, 840, 740);
  
    InitAppleMenu;
    InitToolbar;
    InitCodeTree;
    InitBottomEditor(fmOutput);
    InitBottomEditor(fmValidate);
  
    NTick:= GetTickCount64;
    InitConsole;
    fmConsole.OnConsoleNav:= @DoPyEvent_ConsoleNav;
    fmConsole.OnNumberChange:= @DoOnConsoleNumberChange;
    if UiOps.LogConsoleDetailedStartupTime then
    begin
      NTick:= GetTickCount64-NTick;
      MsgLogConsole(Format('Loaded console form: %dms', [NTick]));
    end;
  
    InitSidebar; //after initing PanelCodeTreeAll, EditorOutput, EditorValidate, fmConsole
  
    AppBookmarkImagelist.AddImages(ImageListBm);
    for i:= 2 to 9 do
    begin
      AppBookmarkSetup[i].Color:= clDefault;
      AppBookmarkSetup[i].ImageIndex:= i-1;
    end;
  
    FMenuVisible:= true;
    AppSessionName:= '';
    FListTimers:= TStringList.Create;
    FLastStatusbarMessages:= TStringList.Create;
    FLastStatusbarMessages.TextLineBreakStyle:= tlbsLF;
  
    InitStatusbar;
    InitGroups;
    InitFinder;
    InitStatusbarControls;
  
    FFindStop:= false;
  