anchor.diff:    Ed: TATSynEdit;
     Caret: TATCaretItem;
     SLexerName: string;
  -  bWordChar, bIdentChar: boolean;
  +  bTypedChar, bWordChar, bIdentChar: boolean;
  +  chWide: WideChar;
   begin
     Ed:= Sender as TATSynEdit;
     if Ed.Carets.Count<>1 then exit;
  
positive.code:     exit;
    end;
  
    //autoshow autocompletion
    if (ACommand=cCommand_TextInsert) and
      (Length(AText)=1) then
    begin
      //autoshow by trigger chars
      if (Ed.OptAutocompleteTriggerChars<>'') and
  
negative.code:     end;
  
      //other conditions need word-char
      if bTypedChar then
      begin
        chWide:= UTF8Decode(AText)[1];
        bWordChar:= IsCharWord(chWide, Ed.OptNonWordChars);
        if not bWordChar then
        begin
          FTextCharsTyped:= 0;
          exit;
        end;
      end;
  
      SLexerName:= LexerNameAtPos(Ed, Point(Caret.PosX, Caret.PosY));
  