anchor.diff:    cProjectFiles = '*.project';
   
     { nicely working so far }
  -  cKeywords = '\b(begin|end|read|write|with|try|finally|except|uses|interface'
  +  cKeywords1 = '\b(begin|end|read|write|with|try|finally|except|uses|interface'
       + '|implementation|procedure|function|constructor|destructor|property|operator'
       + '|private|protected|public|published|type|virtual|abstract|overload'
  -    + '|override|class|unit|program|set|of|if|then|for|downto|to|as|div|mod'
  +    + '|override|class|unit|program|library|set|of|if|then|for|downto|to|as|div|mod|shr|shl'
       + '|do|else|while|and|inherited|const|var|initialization|finalization'
  -    + '|on|or|in|raise|not|case|record|array|out|resourcestring|default)\b'; //[^0-9a-zA-Z:=;\)\( ]*';
  -
  -  cComments1 = '(\s*\/\/.*$)|(\s*\{.*\})';
  +    + '|on|or|in|raise|not|case|record|array|out|resourcestring|default'
  +    + '|xor|repeat|until|constref|stdcall|cdecl|external)\b';
  +
  +  cComments1 = '(\s*\/\/.*$)|(\{[^\{]*\})';
  +  cComments2 = '\{[^\{]*\}';
  +
  +  cDefines1 = '\{\$[^\{]*\}';
  +
  +  cString1 = '''.*''';
  +
  +  cDecimal = '\b(([0-9]+)|([0-9]+\.[0-9]+([Ee][-]?[0-9]+)?))\b';
  +  cHexidecimal = '\b\$[0-9a-fA-F]*\b';
   
   {@VFD_NEWFORM_IMPL}
   
  
positive.code:     until not FRegex.ExecNext;
    end;
  
    { syntax highlighting for: comments }
    ACanvas.Font := oldfont;
    ACanvas.TextColor := clDarkCyan;
    FRegex.Expression := cComments1;
    if FRegex.Exec(ALineText) then
    begin
      if FRegex.SubExprMatchCount = 0 then
      begin
        i := 0;
        lMatchPos := FRegex.MatchPos[i];
        lOffset := FRegex.MatchLen[i];
        s := FRegex.Match[i];
        j := Length(s);
        r.SetRect(ATextRect.Left + (edt.FontWidth * (lMatchPos-1)), ATextRect.Top,
            (edt.FontWidth * j), ATextRect.Height);
        ACanvas.FillRectangle(r);
        ACanvas.DrawText(r, s);
      end
      else
      begin
        for i := 1 to FRegex.SubExprMatchCount do
        begin
          lMatchPos := FRegex.MatchPos[i];
          lOffset := FRegex.MatchLen[i];
          s := FRegex.Match[i];
          j := Length(s);
          r.SetRect(ATextRect.Left + (edt.FontWidth * (lMatchPos-1)), ATextRect.Top,
              (edt.FontWidth * j), ATextRect.Height);
          ACanvas.FillRectangle(r);
          ACanvas.DrawText(r, s);
        end;
      end;
    end;
  
    ACanvas.Font := oldfont;
  
negative.code:   // apply editor settings
    pcEditor.TabPosition := TfpgTabPosition(gINI.ReadInteger(cEditor, 'TabPosition', 0));
    FRegex := TRegExpr.Create;
  
    TextEditor.Clear;
    TextEditor.SetFocus;
  