8
0
Piotrek Koszuliński 9 лет назад
Родитель
Сommit
68e8043679

+ 10 - 0
packages/ckeditor5-engine/src/treemodel/document.js

@@ -17,6 +17,7 @@ import EmitterMixin from '../../utils/emittermixin.js';
 import CKEditorError from '../../utils/ckeditorerror.js';
 import utils from '../../utils/utils.js';
 import Schema from './schema.js';
+import Composer from './composer/composer.js';
 import clone from '../../utils/lib/lodash/clone.js';
 
 const graveyardSymbol = Symbol( 'graveyard' );
@@ -65,6 +66,15 @@ export default class Document {
 		 */
 		this.schema = new Schema();
 
+		/**
+		 * Composer for this document. Set of tools to work with the document.
+		 *
+		 * The features can tune up these tools to better work on their specific cases.
+		 *
+		 * @member {engine.treeModel.composer.Composer} engine.treeModel.Document#composer
+		 */
+		this.composer = new Composer();
+
 		/**
 		 * Array of pending changes. See: {@link engine.treeModel.Document#enqueueChanges}.
 		 *

+ 5 - 0
packages/ckeditor5-engine/tests/treemodel/document/document.js

@@ -8,6 +8,8 @@
 'use strict';
 
 import Document from '/ckeditor5/engine/treemodel/document.js';
+import Schema from '/ckeditor5/engine/treemodel/schema.js';
+import Composer from '/ckeditor5/engine/treemodel/composer/composer.js';
 import RootElement from '/ckeditor5/engine/treemodel/rootelement.js';
 import Batch from '/ckeditor5/engine/treemodel/batch.js';
 import CKEditorError from '/ckeditor5/utils/ckeditorerror.js';
@@ -27,6 +29,9 @@ describe( 'Document', () => {
 			expect( doc.graveyard ).to.be.instanceof( RootElement );
 			expect( doc.graveyard.getChildCount() ).to.equal( 0 );
 			expect( utils.count( doc.selection.getRanges() ) ).to.equal( 1 );
+
+			expect( doc.composer ).to.be.instanceof( Composer );
+			expect( doc.schema ).to.be.instanceof( Schema );
 		} );
 	} );