anchor.diff:      fFolds: TCollection;
       fCaretPosition: Integer;
       fSelectionEnd: Integer;
  +    fSourceFilename: string;
       procedure setFolds(someFolds: TCollection);
     published
       property caretPosition: Integer read fCaretPosition write fCaretPosition;
  +    property sourceFilename: string read fSourceFilename write fSourceFilename;
  +    property folds: TCollection read fFolds write setFolds;
       property selectionEnd: Integer read fSelectionEnd write fSelectionEnd;
  -    //property folds: TCollection read fFolds write setFolds;
     public
       constructor create(aComponent: TComponent); override;
       destructor destroy; override;
  
positive.code: end;
  
  procedure TCESynMemoCache.beforeSave;
  //var
  //  i: Integer;
  //  itm : TCEFoldCache;
  begin
    if fMemo = nil then exit;
    //
    fCaretPosition := fMemo.SelStart;
    fSelectionEnd := fMemo.SelEnd;
    //
    //TODO-cEditor Cache: folding persistence
  end;
  
  procedure TCESynMemoCache.afterLoad;
  begin
    if fMemo = nil then exit;
    //
    fMemo.SelStart := fCaretPosition;
    fMemo.SelEnd := fSelectionEnd;
  
negative.code: interface
  
  uses
    Classes, SysUtils, SynEdit, ce_d2syn, ce_txtsyn ,SynEditHighlighter, controls,
    lcltype, LazSynEditText, SynEditKeyCmds, SynHighlighterLFM, SynEditMouseCmds,
    SynEditFoldedView, crc, ce_common, ce_observer, ce_writableComponent;
  
  type
  
    TCESynMemo = class;
  
    TCEFoldCache = class(TCollectionItem)
    private
      fCollapsed: boolean;
  