anchor.diff:  uses
     Classes, SysUtils, SynEdit, ce_d2syn, ce_txtsyn ,SynEditHighlighter,
     controls, lcltype, LazSynEditText, SynEditKeyCmds, SynHighlighterLFM, SynEditMouseCmds,
  -  ce_common, ce_observer;
  +  ce_common, ce_observer, ce_writableComponent, crc, SynEditFoldedView;
   
   type
  +
  +  TCESynMemo = class;
  +
  +  // TextView, TSynEditFoldedView
  +  TCEFoldCache = class(TCollectionItem)
  +  private
  +    fCollapsed: boolean;
  +    fLineIndex: Integer;
  +    fNestedIndex: Integer;
  +  published
  +    property isCollapsed: boolean read fCollapsed write fCollapsed;
  +    property lineIndex: Integer read fLineIndex write fLineIndex;
  +    property nestedIndex: Integer read fNestedIndex write fNestedIndex;
  +  end;
  +
  +  TCESynMemoCache = class(TWritableComponent)
  +  private
  +    fMemo: TCESynMemo;
  +    fFolds: TCollection;
  +    fCaretPosition: Integer;
  +    fSelectionEnd: Integer;
  +    procedure setFolds(someFolds: TCollection);
  +  published
  +    property caretPosition: Integer read fCaretPosition write fCaretPosition;
  +    property selectionEnd: Integer read fSelectionEnd write fSelectionEnd;
  +    //property folds: TCollection read fFolds write setFolds;
  +  public
  +    constructor create(aComponent: TComponent); override;
  +    destructor destroy; override;
  +    //
  +    procedure beforeSave; override;
  +    procedure afterLoad; override;
  +    procedure save;
  +    procedure load;
  +  end;
   
     TCESynMemoPositions = class
     private
  
positive.code:     //
      property isDSource: boolean read fIsDSource;
      property isProjectSource: boolean read fIsConfig;
    end;
  
  var
  
negative.code: 
  destructor TCESynMemo.destroy;
  begin
    saveCache;
    //
    subjDocClosing(TCEMultiDocSubject(fMultiDocSubject), self);
    fMultiDocSubject.Free;
    fPositions.Free;
  