From b8f016e831a5befaca582ef6d952299fe344b92e Mon Sep 17 00:00:00 2001 From: X Code Date: Sat, 18 Dec 2021 17:47:19 -0800 Subject: [PATCH] Refactor code of ResolveLineFormatRule --- lib/src/models/rules/format.dart | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/src/models/rules/format.dart b/lib/src/models/rules/format.dart index 3c23b15f..d757e92d 100644 --- a/lib/src/models/rules/format.dart +++ b/lib/src/models/rules/format.dart @@ -30,13 +30,14 @@ class ResolveLineFormatRule extends FormatRule { // Apply line styles to all newline characters within range of this // retain operation. - var delta = Delta()..retain(index); + var result = Delta()..retain(index); final itr = DeltaIterator(document)..skip(index); Operation op; for (var cur = 0; cur < len! && itr.hasNext; cur += op.length!) { op = itr.next(len - cur); - if (op.data is! String || !(op.data as String).contains('\n')) { - delta.retain(op.length!); + final opText = op.data is String ? op.data as String : ''; + if (!opText.contains('\n')) { + result.retain(op.length!); continue; } final text = op.data as String; @@ -54,7 +55,7 @@ class ResolveLineFormatRule extends FormatRule { offset = lineBreak + 1; } tmp.retain(text.length - offset); - delta = delta.concat(tmp); + result = result.concat(tmp); } while (itr.hasNext) { @@ -62,17 +63,17 @@ class ResolveLineFormatRule extends FormatRule { final text = op.data is String ? (op.data as String?)! : ''; final lineBreak = text.indexOf('\n'); if (lineBreak < 0) { - delta.retain(op.length!); + result.retain(op.length!); continue; } final removedBlocks = _getRemovedBlocks(attribute, op); - delta + result ..retain(lineBreak) ..retain(1, attribute.toJson()..addEntries(removedBlocks)); break; } - return delta; + return result; } Iterable> _getRemovedBlocks(