@@ -51,8 +51,7 @@ class Document {
5151
5252 Stream <Tuple3 <Delta , Delta , ChangeSource >> get changes => _observer.stream;
5353
54- Delta insert (int index, Object ? data,
55- {int replaceLength = 0 , bool autoAppendNewlineAfterImage = true }) {
54+ Delta insert (int index, Object ? data, {int replaceLength = 0 }) {
5655 assert (index >= 0 );
5756 assert (data is String || data is Embeddable );
5857 if (data is Embeddable ) {
@@ -63,8 +62,7 @@ class Document {
6362
6463 final delta = _rules.apply (RuleType .INSERT , this , index,
6564 data: data, len: replaceLength);
66- compose (delta, ChangeSource .LOCAL ,
67- autoAppendNewlineAfterImage: autoAppendNewlineAfterImage);
65+ compose (delta, ChangeSource .LOCAL );
6866 return delta;
6967 }
7068
@@ -77,8 +75,7 @@ class Document {
7775 return delta;
7876 }
7977
80- Delta replace (int index, int len, Object ? data,
81- {bool autoAppendNewlineAfterImage = true }) {
78+ Delta replace (int index, int len, Object ? data) {
8279 assert (index >= 0 );
8380 assert (data is String || data is Embeddable );
8481
@@ -91,9 +88,7 @@ class Document {
9188 // We have to insert before applying delete rules
9289 // Otherwise delete would be operating on stale document snapshot.
9390 if (dataIsNotEmpty) {
94- delta = insert (index, data,
95- replaceLength: len,
96- autoAppendNewlineAfterImage: autoAppendNewlineAfterImage);
91+ delta = insert (index, data, replaceLength: len);
9792 }
9893
9994 if (len > 0 ) {
@@ -141,17 +136,13 @@ class Document {
141136 return block.queryChild (res.offset, true );
142137 }
143138
144- void compose (Delta delta, ChangeSource changeSource,
145- {bool autoAppendNewlineAfterImage = true ,
146- bool autoAppendNewlineAfterVideo = true }) {
139+ void compose (Delta delta, ChangeSource changeSource) {
147140 assert (! _observer.isClosed);
148141 delta.trim ();
149142 assert (delta.isNotEmpty);
150143
151144 var offset = 0 ;
152- delta = _transform (delta,
153- autoAppendNewlineAfterImage: autoAppendNewlineAfterImage,
154- autoAppendNewlineAfterVideo: autoAppendNewlineAfterVideo);
145+ delta = _transform (delta);
155146 final originalDelta = toDelta ();
156147 for (final op in delta.toList ()) {
157148 final style =
@@ -195,44 +186,37 @@ class Document {
195186
196187 bool get hasRedo => _history.hasRedo;
197188
198- static Delta _transform (Delta delta,
199- {bool autoAppendNewlineAfterImage = true ,
200- bool autoAppendNewlineAfterVideo = true }) {
189+ static Delta _transform (Delta delta) {
201190 final res = Delta ();
202191 final ops = delta.toList ();
203192 for (var i = 0 ; i < ops.length; i++ ) {
204193 final op = ops[i];
205194 res.push (op);
206- if (autoAppendNewlineAfterImage) {
207- _autoAppendNewlineAfterEmbeddable (i, ops, op, res, 'image' );
208- }
209- if (autoAppendNewlineAfterVideo) {
210- _autoAppendNewlineAfterEmbeddable (i, ops, op, res, 'video' );
211- }
195+ _autoAppendNewlineAfterEmbeddable (i, ops, op, res, 'video' );
212196 }
213197 return res;
214198 }
215199
216200 static void _autoAppendNewlineAfterEmbeddable (
217201 int i, List <Operation > ops, Operation op, Delta res, String type) {
218- final nextOpIsImage = i + 1 < ops.length &&
202+ final nextOpIsEmbed = i + 1 < ops.length &&
219203 ops[i + 1 ].isInsert &&
220204 ops[i + 1 ].data is Map &&
221205 (ops[i + 1 ].data as Map ).containsKey (type);
222- if (nextOpIsImage &&
206+ if (nextOpIsEmbed &&
223207 op.data is String &&
224208 (op.data as String ).isNotEmpty &&
225209 ! (op.data as String ).endsWith ('\n ' )) {
226210 res.push (Operation .insert ('\n ' ));
227211 }
228212 // embed could be image or video
229- final opInsertImage =
213+ final opInsertEmbed =
230214 op.isInsert && op.data is Map && (op.data as Map ).containsKey (type);
231215 final nextOpIsLineBreak = i + 1 < ops.length &&
232216 ops[i + 1 ].isInsert &&
233217 ops[i + 1 ].data is String &&
234218 (ops[i + 1 ].data as String ).startsWith ('\n ' );
235- if (opInsertImage && (i + 1 == ops.length - 1 || ! nextOpIsLineBreak)) {
219+ if (opInsertEmbed && (i + 1 == ops.length - 1 || ! nextOpIsLineBreak)) {
236220 // automatically append '\n' for embeddable
237221 res.push (Operation .insert ('\n ' ));
238222 }
0 commit comments