diff --git a/lib/src/widgets/raw_editor/raw_editor_state_selection_delegate_mixin.dart b/lib/src/widgets/raw_editor/raw_editor_state_selection_delegate_mixin.dart index 36a5b5b2..2b51ef05 100644 --- a/lib/src/widgets/raw_editor/raw_editor_state_selection_delegate_mixin.dart +++ b/lib/src/widgets/raw_editor/raw_editor_state_selection_delegate_mixin.dart @@ -19,8 +19,21 @@ mixin RawEditorStateSelectionDelegateMixin on EditorState final oldText = widget.controller.document.toPlainText(); final newText = value.text; final diff = getDiff(oldText, newText, cursorPosition); - widget.controller.replaceText( - diff.start, diff.deleted.length, diff.inserted, value.selection); + var data = diff.inserted; + if (diff.inserted.codeUnits.contains(65532)) { + final sb = StringBuffer(); + + for (var i = 0; i < data.length; i++) { + if (data.codeUnitAt(i) == 65532) { + continue; + } + sb.write(data[i]); + } + data = sb.toString(); + } + + widget.controller + .replaceText(diff.start, diff.deleted.length, data, value.selection); } @override