Skip to content
This repository was archived by the owner on Jun 26, 2020. It is now read-only.

Commit 5fd1ea5

Browse files
authored
Merge pull request #1516 from ckeditor/t/1515
Other: Renamed view `Writer` to `DowncastWriter`. Closes #1515. BREAKING CHANGE: The `engine/view/writer` module was renamed to `engine/view/downcastwriter`.
2 parents f0be604 + 05d418f commit 5fd1ea5

28 files changed

+117
-116
lines changed

src/controller/datacontroller.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { convertText, convertToModelFragment } from '../conversion/upcast-conver
2121

2222
import ViewDocumentFragment from '../view/documentfragment';
2323
import ViewDocument from '../view/document';
24-
import ViewWriter from '../view/writer';
24+
import ViewDowncastWriter from '../view/downcastwriter';
2525

2626
import ModelRange from '../model/range';
2727

@@ -153,9 +153,9 @@ export default class DataController {
153153

154154
const viewDocumentFragment = new ViewDocumentFragment();
155155

156-
// Create separate ViewWriter just for data conversion purposes.
156+
// Create separate ViewDowncastWriter just for data conversion purposes.
157157
// We have no view controller and rendering do DOM in DataController so view.change() block is not used here.
158-
const viewWriter = new ViewWriter( new ViewDocument() );
158+
const viewWriter = new ViewDowncastWriter( new ViewDocument() );
159159
this.mapper.bindElements( modelElementOrFragment, viewDocumentFragment );
160160

161161
this.downcastDispatcher.convertInsert( modelRange, viewWriter );

src/conversion/downcast-converters.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ function _normalizeToElementConfig( view, viewElementType ) {
364364
// Creates a view element instance from the provided {@link module:engine/view/elementdefinition~ElementDefinition} and class.
365365
//
366366
// @param {module:engine/view/elementdefinition~ElementDefinition} viewElementDefinition
367-
// @param {module:engine/view/writer~Writer} viewWriter
367+
// @param {module:engine/view/downcastwriter~DowncastWriter} viewWriter
368368
// @param {'container'|'attribute'|'ui'} viewElementType
369369
// @returns {module:engine/view/element~Element}
370370
function _createViewElementFromDefinition( viewElementDefinition, viewWriter, viewElementType ) {

src/conversion/downcastdispatcher.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ import { extend } from 'lodash-es';
7474
* converted the change should also stop the event (for efficiency purposes).
7575
*
7676
* When providing custom listeners for `DowncastDispatcher` remember to use provided
77-
* {@link module:engine/view/writer~Writer view writer} to apply changes to the view document.
77+
* {@link module:engine/view/downcastwriter~DowncastWriter view downcast writer} to apply changes to the view document.
7878
*
7979
* Example of a custom converter for `DowncastDispatcher`:
8080
*
@@ -120,7 +120,7 @@ export default class DowncastDispatcher {
120120
* Takes {@link module:engine/model/differ~Differ model differ} object with buffered changes and fires conversion basing on it.
121121
*
122122
* @param {module:engine/model/differ~Differ} differ Differ object with buffered changes.
123-
* @param {module:engine/view/writer~Writer} writer View writer that should be used to modify view document.
123+
* @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.
124124
*/
125125
convertChanges( differ, writer ) {
126126
// Before the view is updated, remove markers which have changed.
@@ -155,7 +155,7 @@ export default class DowncastDispatcher {
155155
* @fires insert
156156
* @fires attribute
157157
* @param {module:engine/model/range~Range} range Inserted range.
158-
* @param {module:engine/view/writer~Writer} writer View writer that should be used to modify view document.
158+
* @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.
159159
*/
160160
convertInsert( range, writer ) {
161161
this.conversionApi.writer = writer;
@@ -195,7 +195,7 @@ export default class DowncastDispatcher {
195195
* @param {module:engine/model/position~Position} position Position from which node was removed.
196196
* @param {Number} length Offset size of removed node.
197197
* @param {String} name Name of removed node.
198-
* @param {module:engine/view/writer~Writer} writer View writer that should be used to modify view document.
198+
* @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.
199199
*/
200200
convertRemove( position, length, name, writer ) {
201201
this.conversionApi.writer = writer;
@@ -215,7 +215,7 @@ export default class DowncastDispatcher {
215215
* @param {String} key Key of the attribute that has changed.
216216
* @param {*} oldValue Attribute value before the change or `null` if the attribute has not been set before.
217217
* @param {*} newValue New attribute value or `null` if the attribute has been removed.
218-
* @param {module:engine/view/writer~Writer} writer View writer that should be used to modify view document.
218+
* @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.
219219
*/
220220
convertAttribute( range, key, oldValue, newValue, writer ) {
221221
this.conversionApi.writer = writer;
@@ -251,7 +251,7 @@ export default class DowncastDispatcher {
251251
* @fires attribute
252252
* @param {module:engine/model/selection~Selection} selection Selection to convert.
253253
* @param {Array.<module:engine/model/markercollection~Marker>} markers Array of markers containing model markers.
254-
* @param {module:engine/view/writer~Writer} writer View writer that should be used to modify view document.
254+
* @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.
255255
*/
256256
convertSelection( selection, markers, writer ) {
257257
const markersAtSelection = Array.from( markers.getMarkersAtPosition( selection.getFirstPosition() ) );
@@ -308,7 +308,7 @@ export default class DowncastDispatcher {
308308
* @fires addMarker
309309
* @param {String} markerName Marker name.
310310
* @param {module:engine/model/range~Range} markerRange Marker range.
311-
* @param {module:engine/view/writer~Writer} writer View writer that should be used to modify view document.
311+
* @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.
312312
*/
313313
convertMarkerAdd( markerName, markerRange, writer ) {
314314
// Do not convert if range is in graveyard or not in the document (e.g. in DocumentFragment).
@@ -357,7 +357,7 @@ export default class DowncastDispatcher {
357357
* @fires removeMarker
358358
* @param {String} markerName Marker name.
359359
* @param {module:engine/model/range~Range} markerRange Marker range.
360-
* @param {module:engine/view/writer~Writer} writer View writer that should be used to modify view document.
360+
* @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.
361361
*/
362362
convertMarkerRemove( markerName, markerRange, writer ) {
363363
// Do not convert if range is in graveyard or not in the document (e.g. in DocumentFragment).

src/view/attributeelement.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ const DEFAULT_PRIORITY = 10;
1515

1616
/**
1717
* Attributes are elements which define document presentation. They are mostly elements like `<b>` or `<span>`.
18-
* Attributes can be broken and merged by the {@link module:engine/view/writer~Writer view writer}.
18+
* Attributes can be broken and merged by the {@link module:engine/view/downcastwriter~DowncastWriter view downcast writer}.
1919
*
2020
* Editing engine does not define fixed HTML DTD. This is why the type of the {@link module:engine/view/element~Element} need to
2121
* be defined by the feature developer. Creating an element you should use {@link module:engine/view/containerelement~ContainerElement}
@@ -27,7 +27,7 @@ export default class AttributeElement extends Element {
2727
/**
2828
* Creates a attribute element.
2929
*
30-
* @see module:engine/view/writer~Writer#createAttributeElement
30+
* @see module:engine/view/downcastwriter~DowncastWriter#createAttributeElement
3131
* @protected
3232
* @see module:engine/view/element~Element
3333
*/
@@ -43,7 +43,7 @@ export default class AttributeElement extends Element {
4343
this.getFillerOffset = getFillerOffset;
4444

4545
/**
46-
* Element priority. Decides in what order elements are wrapped by {@link module:engine/view/writer~Writer}.
46+
* Element priority. Decides in what order elements are wrapped by {@link module:engine/view/downcastwriter~DowncastWriter}.
4747
*
4848
* @protected
4949
* @member {Number}
@@ -63,7 +63,7 @@ export default class AttributeElement extends Element {
6363
* Keeps all the attribute elements that have the same {@link module:engine/view/attributeelement~AttributeElement#id ids}
6464
* and still exist in the view tree.
6565
*
66-
* This property is managed by {@link module:engine/view/writer~Writer}.
66+
* This property is managed by {@link module:engine/view/downcastwriter~DowncastWriter}.
6767
*
6868
* @protected
6969
* @member {Set|null}
@@ -72,7 +72,7 @@ export default class AttributeElement extends Element {
7272
}
7373

7474
/**
75-
* Element priority. Decides in what order elements are wrapped by {@link module:engine/view/writer~Writer}.
75+
* Element priority. Decides in what order elements are wrapped by {@link module:engine/view/downcastwriter~DowncastWriter}.
7676
*
7777
* @readonly
7878
* @returns {Number}
@@ -142,10 +142,10 @@ export default class AttributeElement extends Element {
142142
* elements have to have the same {@link module:engine/view/attributeelement~AttributeElement#id} value to be
143143
* considered similar.
144144
*
145-
* Similarity is important for {@link module:engine/view/writer~Writer}. For example:
145+
* Similarity is important for {@link module:engine/view/downcastwriter~DowncastWriter}. For example:
146146
*
147147
* * two following similar elements can be merged together into one, longer element,
148-
* * {@link module:engine/view/writer~Writer#unwrap} checks similarity of passed element and processed element to
148+
* * {@link module:engine/view/downcastwriter~DowncastWriter#unwrap} checks similarity of passed element and processed element to
149149
* decide whether processed element should be unwrapped,
150150
* * etc.
151151
*

src/view/containerelement.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,15 @@ import Element from './element';
2323
* DOM properly. {@link module:engine/view/domconverter~DomConverter} will ensure that `ContainerElement` is editable and it is possible
2424
* to put caret inside it, even if the container is empty.
2525
*
26-
* Secondly, {@link module:engine/view/writer~Writer view writer} uses this information.
27-
* Nodes {@link module:engine/view/writer~Writer#breakAttributes breaking} and {@link module:engine/view/writer~Writer#mergeAttributes
28-
* merging}
29-
* is performed only in a bounds of a container nodes.
26+
* Secondly, {@link module:engine/view/downcastwriter~DowncastWriter view downcast writer} uses this information.
27+
* Nodes {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes breaking} and
28+
* {@link module:engine/view/downcastwriter~DowncastWriter#mergeAttributes merging} is performed only in a bounds of a container nodes.
3029
*
3130
* For instance if `<p>` is an container and `<b>` is attribute:
3231
*
3332
* <p><b>fo^o</b></p>
3433
*
35-
* {@link module:engine/view/writer~Writer#breakAttributes breakAttributes} will create:
34+
* {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes breakAttributes} will create:
3635
*
3736
* <p><b>fo</b><b>o</b></p>
3837
*
@@ -49,7 +48,7 @@ export default class ContainerElement extends Element {
4948
* Creates a container element.
5049
*
5150
* @see module:engine/view/element~Element
52-
* @see module:engine/view/writer~Writer#createContainerElement
51+
* @see module:engine/view/downcastwriter~DowncastWriter#createContainerElement
5352
* @protected
5453
*/
5554
constructor( name, attrs, children ) {

src/view/document.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ export default class Document {
112112
* to elements based on the view structure or selection. However, is you need DOM elements to be already updated, use
113113
* {@link module:engine/view/view~View#event:render render event}.
114114
*
115-
* As a parameter, a post-fixer callback receives a {@link module:engine/view/writer~Writer writer} instance connected with the
116-
* executed changes block.
115+
* As a parameter, a post-fixer callback receives a {@link module:engine/view/downcastwriter~DowncastWriter downcast writer}
116+
* instance connected with the executed changes block.
117117
*
118118
* @param {Function} postFixer
119119
*/
@@ -125,7 +125,7 @@ export default class Document {
125125
* Performs post-fixer loops. Executes post-fixer callbacks as long as none of them has done any changes to the model.
126126
*
127127
* @protected
128-
* @param {module:engine/view/writer~Writer} writer
128+
* @param {module:engine/view/downcastwriter~DowncastWriter} writer
129129
*/
130130
_callPostFixers( writer ) {
131131
let wasFixed = false;

src/view/writer.js renamed to src/view/downcastwriter.js

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55

66
/**
7-
* @module module:engine/view/writer
7+
* @module module:engine/view/downcastwriter
88
*/
99

1010
import Position from './position';
@@ -21,11 +21,13 @@ import EditableElement from './editableelement';
2121
import { isPlainObject } from 'lodash-es';
2222

2323
/**
24-
* View writer class. Provides set of methods used to properly manipulate nodes attached to
24+
* View downcast writer class. Provides set of methods used to properly manipulate nodes attached to
2525
* {@link module:engine/view/document~Document view document}. It is not recommended to use it directly. To get an instance
2626
* of view writer associated with the document use {@link module:engine/view/view~View#change view.change()) method.
27+
* The `DowncastWriter` is designed to work with semantic view which is the view downcasted from model. For working with
28+
* ordinary view (e.g. parsed from string) {@link module:engine/view/upcastwriter~UpcastWriter upcast writer} should be used.
2729
*/
28-
export default class Writer {
30+
export default class DowncastWriter {
2931
constructor( document ) {
3032
/**
3133
* @readonly
@@ -88,7 +90,7 @@ export default class Writer {
8890
* // Removes all ranges.
8991
* writer.setSelection( null );
9092
*
91-
* `Writer#setSelection()` allow passing additional options (`backward`, `fake` and `label`) as the last argument.
93+
* `DowncastWriter#setSelection()` allow passing additional options (`backward`, `fake` and `label`) as the last argument.
9294
*
9395
* // Sets selection as backward.
9496
* writer.setSelection( range, { backward: true } );
@@ -369,8 +371,8 @@ export default class Writer {
369371
*
370372
* **Note:** {@link module:engine/view/documentfragment~DocumentFragment DocumentFragment} is treated like a container.
371373
*
372-
* **Note:** Difference between {@link module:engine/view/writer~Writer#breakAttributes breakAttributes} and
373-
* {@link module:engine/view/writer~Writer#breakContainer breakContainer} is that `breakAttributes` breaks all
374+
* **Note:** Difference between {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes breakAttributes} and
375+
* {@link module:engine/view/downcastwriter~DowncastWriter#breakContainer breakContainer} is that `breakAttributes` breaks all
374376
* {@link module:engine/view/attributeelement~AttributeElement attribute elements} that are ancestors of given `position`,
375377
* up to the first encountered {@link module:engine/view/containerelement~ContainerElement container element}.
376378
* `breakContainer` assumes that given `position` is directly in container element and breaks that container element.
@@ -389,7 +391,7 @@ export default class Writer {
389391
*
390392
* @see module:engine/view/attributeelement~AttributeElement
391393
* @see module:engine/view/containerelement~ContainerElement
392-
* @see module:engine/view/writer~Writer#breakContainer
394+
* @see module:engine/view/downcastwriter~DowncastWriter#breakContainer
393395
* @param {module:engine/view/position~Position|module:engine/view/range~Range} positionOrRange Position where
394396
* to break attribute elements.
395397
* @returns {module:engine/view/position~Position|module:engine/view/range~Range} New position or range, after breaking the attribute
@@ -413,15 +415,15 @@ export default class Writer {
413415
* <p>^foobar</p> -> ^<p>foobar</p>
414416
* <p>foobar^</p> -> <p>foobar</p>^
415417
*
416-
* **Note:** Difference between {@link module:engine/view/writer~Writer#breakAttributes breakAttributes} and
417-
* {@link module:engine/view/writer~Writer#breakContainer breakContainer} is that `breakAttributes` breaks all
418+
* **Note:** Difference between {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes breakAttributes} and
419+
* {@link module:engine/view/downcastwriter~DowncastWriter#breakContainer breakContainer} is that `breakAttributes` breaks all
418420
* {@link module:engine/view/attributeelement~AttributeElement attribute elements} that are ancestors of given `position`,
419421
* up to the first encountered {@link module:engine/view/containerelement~ContainerElement container element}.
420422
* `breakContainer` assumes that given `position` is directly in container element and breaks that container element.
421423
*
422424
* @see module:engine/view/attributeelement~AttributeElement
423425
* @see module:engine/view/containerelement~ContainerElement
424-
* @see module:engine/view/writer~Writer#breakAttributes
426+
* @see module:engine/view/downcastwriter~DowncastWriter#breakAttributes
425427
* @param {module:engine/view/position~Position} position Position where to break element.
426428
* @returns {module:engine/view/position~Position} Position between broken elements. If element has not been broken,
427429
* the returned position is placed either before it or after it.
@@ -480,14 +482,14 @@ export default class Writer {
480482
* <p><b>[]</b></p> -> <p>[]</p>
481483
* <p><b>foo</b><i>[]</i><b>bar</b></p> -> <p><b>foo{}bar</b></p>
482484
*
483-
* **Note:** Difference between {@link module:engine/view/writer~Writer#mergeAttributes mergeAttributes} and
484-
* {@link module:engine/view/writer~Writer#mergeContainers mergeContainers} is that `mergeAttributes` merges two
485+
* **Note:** Difference between {@link module:engine/view/downcastwriter~DowncastWriter#mergeAttributes mergeAttributes} and
486+
* {@link module:engine/view/downcastwriter~DowncastWriter#mergeContainers mergeContainers} is that `mergeAttributes` merges two
485487
* {@link module:engine/view/attributeelement~AttributeElement attribute elements} or {@link module:engine/view/text~Text text nodes}
486488
* while `mergeContainer` merges two {@link module:engine/view/containerelement~ContainerElement container elements}.
487489
*
488490
* @see module:engine/view/attributeelement~AttributeElement
489491
* @see module:engine/view/containerelement~ContainerElement
490-
* @see module:engine/view/writer~Writer#mergeContainers
492+
* @see module:engine/view/downcastwriter~DowncastWriter#mergeContainers
491493
* @param {module:engine/view/position~Position} position Merge position.
492494
* @returns {module:engine/view/position~Position} Position after merge.
493495
*/
@@ -547,14 +549,14 @@ export default class Writer {
547549
* <p>foo</p>^<p>bar</p> -> <p>foo^bar</p>
548550
* <div>foo</div>^<p>bar</p> -> <div>foo^bar</div>
549551
*
550-
* **Note:** Difference between {@link module:engine/view/writer~Writer#mergeAttributes mergeAttributes} and
551-
* {@link module:engine/view/writer~Writer#mergeContainers mergeContainers} is that `mergeAttributes` merges two
552+
* **Note:** Difference between {@link module:engine/view/downcastwriter~DowncastWriter#mergeAttributes mergeAttributes} and
553+
* {@link module:engine/view/downcastwriter~DowncastWriter#mergeContainers mergeContainers} is that `mergeAttributes` merges two
552554
* {@link module:engine/view/attributeelement~AttributeElement attribute elements} or {@link module:engine/view/text~Text text nodes}
553555
* while `mergeContainer` merges two {@link module:engine/view/containerelement~ContainerElement container elements}.
554556
*
555557
* @see module:engine/view/attributeelement~AttributeElement
556558
* @see module:engine/view/containerelement~ContainerElement
557-
* @see module:engine/view/writer~Writer#mergeAttributes
559+
* @see module:engine/view/downcastwriter~DowncastWriter#mergeAttributes
558560
* @param {module:engine/view/position~Position} position Merge position.
559561
* @returns {module:engine/view/position~Position} Position after merge.
560562
*/
@@ -1304,7 +1306,7 @@ export default class Writer {
13041306
}
13051307

13061308
/**
1307-
* Helper function used by other `Writer` methods. Breaks attribute elements at the boundaries of given range.
1309+
* Helper function used by other `DowncastWriter` methods. Breaks attribute elements at the boundaries of given range.
13081310
*
13091311
* @private
13101312
* @param {module:engine/view/range~Range} range Range which `start` and `end` positions will be used to break attributes.
@@ -1336,7 +1338,7 @@ export default class Writer {
13361338
}
13371339

13381340
/**
1339-
* Helper function used by other `Writer` methods. Breaks attribute elements at given position.
1341+
* Helper function used by other `DowncastWriter` methods. Breaks attribute elements at given position.
13401342
*
13411343
* Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-empty-element` when break position
13421344
* is placed inside {@link module:engine/view/emptyelement~EmptyElement EmptyElement}.

0 commit comments

Comments
 (0)