anchor.diff:      procedure DoBottom_OnHide(Sender: TObject);
       procedure DoBottom_OnCloseFloatForm(Sender: TObject; var CloseAction: TCloseAction);
       procedure DoBottom_FindClick(Sender: TObject);
  +    function DoAutoComplete_FromPlugins(Ed: TATSynEdit): boolean;
       procedure DoAutoComplete(Ed: TATSynEdit);
       procedure DoPyCommand_Cudaxlib(Ed: TATSynEdit; const AMethod: string);
       procedure DoDialogCharMap;
  
positive.code:   CompletionOps.CloseChars:= Ed.OptAutocompleteCloseChars; //before DoPyEvent
    CompletionOps.CommitIfSingleItem:= Ed.OptAutocompleteCommitIfSingleItem; //before DoPyEvent
  
    //call auto-completion plugins
    SetLength(Params, 0);
    if DoPyEvent(Ed, cEventOnComplete, Params).Val = evrTrue then exit;
  
    IsHtml:= false;
    IsCss:= false;
  
negative.code: end;
  
  
  function TfmMain.DoAutoComplete_FromPlugins(Ed: TATSynEdit): boolean;
  var
    Params: TAppVariantArray;
  begin
    SetLength(Params, 0);
    Result:= DoPyEvent(Ed, cEventOnComplete, Params).Val = evrTrue;
  end;
  
  procedure TfmMain.DoAutoComplete(Ed: TATSynEdit);
  var
    Frame: TEditorFrame;
    SLexer: string;
    IsCss, IsHtml, IsCaseSens, IsAcpFiles: boolean;
    Caret: TATCaretItem;
    bWithLexer: boolean;
  begin
    Frame:= GetEditorFrame(Ed);
  