From 9b146f3fbcd26bae590d9f6ec13490045a6312d1 Mon Sep 17 00:00:00 2001 From: Lin Zhang Date: Mon, 3 Apr 2023 22:41:04 +0800 Subject: [PATCH] Fix line style loss on new line from non string (#1157) --- lib/src/models/rules/insert.dart | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/src/models/rules/insert.dart b/lib/src/models/rules/insert.dart index 8ef6c196..44124fbc 100644 --- a/lib/src/models/rules/insert.dart +++ b/lib/src/models/rules/insert.dart @@ -35,20 +35,20 @@ class PreserveLineStyleOnSplitRule extends InsertRule { final itr = DeltaIterator(document); final before = itr.skip(index); - if (before == null || - before.data is! String || - (before.data as String).endsWith('\n')) { + if (before == null) { return null; } - final after = itr.next(); - if (after.data is! String || (after.data as String).startsWith('\n')) { + if (before.data is String && (before.data as String).endsWith('\n')) { return null; } - final text = after.data as String; + final after = itr.next(); + if (after.data is String && (after.data as String).startsWith('\n')) { + return null; + } final delta = Delta()..retain(index + (len ?? 0)); - if (text.contains('\n')) { + if (after.data is String && (after.data as String).contains('\n')) { assert(after.isPlain); delta.insert('\n'); return delta;