| 
														
															@@ -1,6 +1,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import 'dart:async'; 
														 | 
														
														 | 
														
															 import 'dart:async'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import 'dart:convert'; 
														 | 
														
														 | 
														
															 import 'dart:convert'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import 'dart:math' as math; 
														 | 
														
														 | 
														
															 import 'dart:math' as math; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import 'dart:developer'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import 'package:flutter/cupertino.dart'; 
														 | 
														
														 | 
														
															 import 'package:flutter/cupertino.dart'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import 'package:flutter/foundation.dart'; 
														 | 
														
														 | 
														
															 import 'package:flutter/foundation.dart'; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -59,8 +60,7 @@ class RawEditor extends StatefulWidget { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     this.embedBuilder, 
														 | 
														
														 | 
														
															     this.embedBuilder, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   )   : assert(maxHeight == null || maxHeight > 0, 'maxHeight cannot be null'), 
														 | 
														
														 | 
														
															   )   : assert(maxHeight == null || maxHeight > 0, 'maxHeight cannot be null'), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         assert(minHeight == null || minHeight >= 0, 'minHeight cannot be null'), 
														 | 
														
														 | 
														
															         assert(minHeight == null || minHeight >= 0, 'minHeight cannot be null'), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        assert( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            maxHeight == null || minHeight == null || maxHeight >= minHeight), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        assert(maxHeight == null || minHeight == null || maxHeight >= minHeight), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         showCursor = showCursor ?? true, 
														 | 
														
														 | 
														
															         showCursor = showCursor ?? true, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         super(key: key); 
														 | 
														
														 | 
														
															         super(key: key); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -111,10 +111,7 @@ abstract class EditorState extends State<RawEditor> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 class _RawEditorState extends EditorState 
														 | 
														
														 | 
														
															 class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    with 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        AutomaticKeepAliveClientMixin<RawEditor>, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        WidgetsBindingObserver, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        TickerProviderStateMixin<RawEditor> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    with AutomaticKeepAliveClientMixin<RawEditor>, WidgetsBindingObserver, TickerProviderStateMixin<RawEditor> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     implements TextSelectionDelegate, TextInputClient { 
														 | 
														
														 | 
														
															     implements TextSelectionDelegate, TextInputClient { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   final GlobalKey _editorKey = GlobalKey(); 
														 | 
														
														 | 
														
															   final GlobalKey _editorKey = GlobalKey(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   final List<TextEditingValue> _sentRemoteValues = []; 
														 | 
														
														 | 
														
															   final List<TextEditingValue> _sentRemoteValues = []; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -132,8 +129,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   bool _didAutoFocus = false; 
														 | 
														
														 | 
														
															   bool _didAutoFocus = false; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   bool _keyboardVisible = false; 
														 | 
														
														 | 
														
															   bool _keyboardVisible = false; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   DefaultStyles? _styles; 
														 | 
														
														 | 
														
															   DefaultStyles? _styles; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  final ClipboardStatusNotifier? _clipboardStatus = 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      kIsWeb ? null : ClipboardStatusNotifier(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  final ClipboardStatusNotifier? _clipboardStatus = kIsWeb ? null : ClipboardStatusNotifier(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   final LayerLink _toolbarLayerLink = LayerLink(); 
														 | 
														
														 | 
														
															   final LayerLink _toolbarLayerLink = LayerLink(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   final LayerLink _startHandleLayerLink = LayerLink(); 
														 | 
														
														 | 
														
															   final LayerLink _startHandleLayerLink = LayerLink(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   final LayerLink _endHandleLayerLink = LayerLink(); 
														 | 
														
														 | 
														
															   final LayerLink _endHandleLayerLink = LayerLink(); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -181,78 +177,57 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         downKey = key == LogicalKeyboardKey.arrowDown; 
														 | 
														
														 | 
														
															         downKey = key == LogicalKeyboardKey.arrowDown; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if ((rightKey || leftKey) && !(rightKey && leftKey)) { 
														 | 
														
														 | 
														
															     if ((rightKey || leftKey) && !(rightKey && leftKey)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      newSelection = _jumpToBeginOrEndOfWord(newSelection, wordModifier, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          leftKey, rightKey, plainText, lineModifier, shift); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      newSelection = 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          _jumpToBeginOrEndOfWord(newSelection, wordModifier, leftKey, rightKey, plainText, lineModifier, shift); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (downKey || upKey) { 
														 | 
														
														 | 
														
															     if (downKey || upKey) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      newSelection = _handleMovingCursorVertically( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          upKey, downKey, shift, selection, newSelection, plainText); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      newSelection = _handleMovingCursorVertically(upKey, downKey, shift, selection, newSelection, plainText); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (!shift) { 
														 | 
														
														 | 
														
															     if (!shift) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      newSelection = 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          _placeCollapsedSelection(selection, newSelection, leftKey, rightKey); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      newSelection = _placeCollapsedSelection(selection, newSelection, leftKey, rightKey); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     widget.controller.updateSelection(newSelection, ChangeSource.LOCAL); 
														 | 
														
														 | 
														
															     widget.controller.updateSelection(newSelection, ChangeSource.LOCAL); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  TextSelection _placeCollapsedSelection(TextSelection selection, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      TextSelection newSelection, bool leftKey, bool rightKey) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  TextSelection _placeCollapsedSelection( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      TextSelection selection, TextSelection newSelection, bool leftKey, bool rightKey) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     var newOffset = newSelection.extentOffset; 
														 | 
														
														 | 
														
															     var newOffset = newSelection.extentOffset; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (!selection.isCollapsed) { 
														 | 
														
														 | 
														
															     if (!selection.isCollapsed) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (leftKey) { 
														 | 
														
														 | 
														
															       if (leftKey) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        newOffset = newSelection.baseOffset < newSelection.extentOffset 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            ? newSelection.baseOffset 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            : newSelection.extentOffset; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        newOffset = 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            newSelection.baseOffset < newSelection.extentOffset ? newSelection.baseOffset : newSelection.extentOffset; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } else if (rightKey) { 
														 | 
														
														 | 
														
															       } else if (rightKey) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        newOffset = newSelection.baseOffset > newSelection.extentOffset 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            ? newSelection.baseOffset 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            : newSelection.extentOffset; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        newOffset = 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            newSelection.baseOffset > newSelection.extentOffset ? newSelection.baseOffset : newSelection.extentOffset; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     return TextSelection.fromPosition(TextPosition(offset: newOffset)); 
														 | 
														
														 | 
														
															     return TextSelection.fromPosition(TextPosition(offset: newOffset)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   TextSelection _handleMovingCursorVertically( 
														 | 
														
														 | 
														
															   TextSelection _handleMovingCursorVertically( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      bool upKey, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      bool downKey, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      bool shift, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      TextSelection selection, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      TextSelection newSelection, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      String plainText) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    final originPosition = TextPosition( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        offset: upKey ? selection.baseOffset : selection.extentOffset); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      bool upKey, bool downKey, bool shift, TextSelection selection, TextSelection newSelection, String plainText) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    final originPosition = TextPosition(offset: upKey ? selection.baseOffset : selection.extentOffset); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     final child = getRenderEditor()!.childAtPosition(originPosition); 
														 | 
														
														 | 
														
															     final child = getRenderEditor()!.childAtPosition(originPosition); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    final localPosition = TextPosition( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        offset: originPosition.offset - child.container.documentOffset); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    final localPosition = TextPosition(offset: originPosition.offset - child.container.documentOffset); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    var position = upKey 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        ? child.getPositionAbove(localPosition) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        : child.getPositionBelow(localPosition); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    var position = upKey ? child.getPositionAbove(localPosition) : child.getPositionBelow(localPosition); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (position == null) { 
														 | 
														
														 | 
														
															     if (position == null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      final sibling = upKey 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          ? getRenderEditor()!.childBefore(child) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          : getRenderEditor()!.childAfter(child); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      final sibling = upKey ? getRenderEditor()!.childBefore(child) : getRenderEditor()!.childAfter(child); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (sibling == null) { 
														 | 
														
														 | 
														
															       if (sibling == null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         position = TextPosition(offset: upKey ? 0 : plainText.length - 1); 
														 | 
														
														 | 
														
															         position = TextPosition(offset: upKey ? 0 : plainText.length - 1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } else { 
														 | 
														
														 | 
														
															       } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        final finalOffset = Offset( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            child.getOffsetForCaret(localPosition).dx, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            sibling 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                .getOffsetForCaret(TextPosition( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    offset: upKey ? sibling.container.length - 1 : 0)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                .dy); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        final finalOffset = Offset(child.getOffsetForCaret(localPosition).dx, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            sibling.getOffsetForCaret(TextPosition(offset: upKey ? sibling.container.length - 1 : 0)).dy); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         final siblingPosition = sibling.getPositionForOffset(finalOffset); 
														 | 
														
														 | 
														
															         final siblingPosition = sibling.getPositionForOffset(finalOffset); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        position = TextPosition( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            offset: sibling.container.documentOffset + siblingPosition.offset); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        position = TextPosition(offset: sibling.container.documentOffset + siblingPosition.offset); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } else { 
														 | 
														
														 | 
														
															     } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      position = TextPosition( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          offset: child.container.documentOffset + position.offset); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      position = TextPosition(offset: child.container.documentOffset + position.offset); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (position.offset == newSelection.extentOffset) { 
														 | 
														
														 | 
														
															     if (position.offset == newSelection.extentOffset) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -275,47 +250,33 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     return newSelection; 
														 | 
														
														 | 
														
															     return newSelection; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  TextSelection _jumpToBeginOrEndOfWord( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      TextSelection newSelection, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      bool wordModifier, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      bool leftKey, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      bool rightKey, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      String plainText, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      bool lineModifier, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      bool shift) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  TextSelection _jumpToBeginOrEndOfWord(TextSelection newSelection, bool wordModifier, bool leftKey, bool rightKey, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      String plainText, bool lineModifier, bool shift) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (wordModifier) { 
														 | 
														
														 | 
														
															     if (wordModifier) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (leftKey) { 
														 | 
														
														 | 
														
															       if (leftKey) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         final textSelection = getRenderEditor()!.selectWordAtPosition( 
														 | 
														
														 | 
														
															         final textSelection = getRenderEditor()!.selectWordAtPosition( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            TextPosition( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                offset: _previousCharacter( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    newSelection.extentOffset, plainText, false))); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            TextPosition(offset: _previousCharacter(newSelection.extentOffset, plainText, false))); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return newSelection.copyWith(extentOffset: textSelection.baseOffset); 
														 | 
														
														 | 
														
															         return newSelection.copyWith(extentOffset: textSelection.baseOffset); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      final textSelection = getRenderEditor()!.selectWordAtPosition( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          TextPosition( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-              offset: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                  _nextCharacter(newSelection.extentOffset, plainText, false))); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      final textSelection = getRenderEditor()! 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          .selectWordAtPosition(TextPosition(offset: _nextCharacter(newSelection.extentOffset, plainText, false))); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       return newSelection.copyWith(extentOffset: textSelection.extentOffset); 
														 | 
														
														 | 
														
															       return newSelection.copyWith(extentOffset: textSelection.extentOffset); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } else if (lineModifier) { 
														 | 
														
														 | 
														
															     } else if (lineModifier) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (leftKey) { 
														 | 
														
														 | 
														
															       if (leftKey) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         final textSelection = getRenderEditor()!.selectLineAtPosition( 
														 | 
														
														 | 
														
															         final textSelection = getRenderEditor()!.selectLineAtPosition( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            TextPosition( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                offset: _previousCharacter( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    newSelection.extentOffset, plainText, false))); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            TextPosition(offset: _previousCharacter(newSelection.extentOffset, plainText, false))); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return newSelection.copyWith(extentOffset: textSelection.baseOffset); 
														 | 
														
														 | 
														
															         return newSelection.copyWith(extentOffset: textSelection.baseOffset); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       final startPoint = newSelection.extentOffset; 
														 | 
														
														 | 
														
															       final startPoint = newSelection.extentOffset; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (startPoint < plainText.length) { 
														 | 
														
														 | 
														
															       if (startPoint < plainText.length) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        final textSelection = getRenderEditor()! 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            .selectLineAtPosition(TextPosition(offset: startPoint)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        final textSelection = getRenderEditor()!.selectLineAtPosition(TextPosition(offset: startPoint)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return newSelection.copyWith(extentOffset: textSelection.extentOffset); 
														 | 
														
														 | 
														
															         return newSelection.copyWith(extentOffset: textSelection.extentOffset); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       return newSelection; 
														 | 
														
														 | 
														
															       return newSelection; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (rightKey && newSelection.extentOffset < plainText.length) { 
														 | 
														
														 | 
														
															     if (rightKey && newSelection.extentOffset < plainText.length) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      final nextExtent = 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          _nextCharacter(newSelection.extentOffset, plainText, true); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      final nextExtent = _nextCharacter(newSelection.extentOffset, plainText, true); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       final distance = nextExtent - newSelection.extentOffset; 
														 | 
														
														 | 
														
															       final distance = nextExtent - newSelection.extentOffset; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       newSelection = newSelection.copyWith(extentOffset: nextExtent); 
														 | 
														
														 | 
														
															       newSelection = newSelection.copyWith(extentOffset: nextExtent); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (shift) { 
														 | 
														
														 | 
														
															       if (shift) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -325,8 +286,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (leftKey && newSelection.extentOffset > 0) { 
														 | 
														
														 | 
														
															     if (leftKey && newSelection.extentOffset > 0) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      final previousExtent = 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          _previousCharacter(newSelection.extentOffset, plainText, true); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      final previousExtent = _previousCharacter(newSelection.extentOffset, plainText, true); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       final distance = newSelection.extentOffset - previousExtent; 
														 | 
														
														 | 
														
															       final distance = newSelection.extentOffset - previousExtent; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       newSelection = newSelection.copyWith(extentOffset: previousExtent); 
														 | 
														
														 | 
														
															       newSelection = newSelection.copyWith(extentOffset: previousExtent); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (shift) { 
														 | 
														
														 | 
														
															       if (shift) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -366,9 +326,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     var count = 0; 
														 | 
														
														 | 
														
															     var count = 0; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     int? lastNonWhitespace; 
														 | 
														
														 | 
														
															     int? lastNonWhitespace; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     for (final currentString in string.characters) { 
														 | 
														
														 | 
														
															     for (final currentString in string.characters) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      if (!includeWhitespace && 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          !WHITE_SPACE.contains( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-              currentString.characters.first.toString().codeUnitAt(0))) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      if (!includeWhitespace && !WHITE_SPACE.contains(currentString.characters.first.toString().codeUnitAt(0))) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         lastNonWhitespace = count; 
														 | 
														
														 | 
														
															         lastNonWhitespace = count; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (count + currentString.length >= index) { 
														 | 
														
														 | 
														
															       if (count + currentString.length >= index) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -379,8 +337,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     return 0; 
														 | 
														
														 | 
														
															     return 0; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  bool get hasConnection => 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      _textInputConnection != null && _textInputConnection!.attached; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  bool get hasConnection => _textInputConnection != null && _textInputConnection!.attached; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   void openConnectionIfNeeded() { 
														 | 
														
														 | 
														
															   void openConnectionIfNeeded() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (!shouldCreateInputConnection) { 
														 | 
														
														 | 
														
															     if (!shouldCreateInputConnection) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -431,8 +388,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       return; 
														 | 
														
														 | 
														
															       return; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    final shouldRemember = 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        textEditingValue.text != _lastKnownRemoteTextEditingValue!.text; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    final shouldRemember = textEditingValue.text != _lastKnownRemoteTextEditingValue!.text; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     _lastKnownRemoteTextEditingValue = actualValue; 
														 | 
														
														 | 
														
															     _lastKnownRemoteTextEditingValue = actualValue; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     _textInputConnection!.setEditingState(actualValue); 
														 | 
														
														 | 
														
															     _textInputConnection!.setEditingState(actualValue); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (shouldRemember) { 
														 | 
														
														 | 
														
															     if (shouldRemember) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -441,8 +397,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   @override 
														 | 
														
														 | 
														
															   @override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  TextEditingValue? get currentTextEditingValue => 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      _lastKnownRemoteTextEditingValue; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  TextEditingValue? get currentTextEditingValue => _lastKnownRemoteTextEditingValue; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   @override 
														 | 
														
														 | 
														
															   @override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   AutofillScope? get currentAutofillScope => null; 
														 | 
														
														 | 
														
															   AutofillScope? get currentAutofillScope => null; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -474,8 +429,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     final text = value.text; 
														 | 
														
														 | 
														
															     final text = value.text; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     final cursorPosition = value.selection.extentOffset; 
														 | 
														
														 | 
														
															     final cursorPosition = value.selection.extentOffset; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     final diff = getDiff(oldText, text, cursorPosition); 
														 | 
														
														 | 
														
															     final diff = getDiff(oldText, text, cursorPosition); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    widget.controller.replaceText( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        diff.start, diff.deleted.length, diff.inserted, value.selection); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    widget.controller.replaceText(diff.start, diff.deleted.length, diff.inserted, value.selection); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   @override 
														 | 
														
														 | 
														
															   @override 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -525,11 +479,8 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     super.build(context); 
														 | 
														
														 | 
														
															     super.build(context); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     var _doc = widget.controller.document; 
														 | 
														
														 | 
														
															     var _doc = widget.controller.document; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if (_doc.isEmpty() && 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        !widget.focusNode.hasFocus && 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        widget.placeholder != null) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      _doc = Document.fromJson(jsonDecode( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          '[{"attributes":{"placeholder":true},"insert":"${widget.placeholder}\\n"}]')); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (_doc.isEmpty() && !widget.focusNode.hasFocus && widget.placeholder != null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      _doc = Document.fromJson(jsonDecode('[{"attributes":{"placeholder":true},"insert":"${widget.placeholder}\\n"}]')); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     Widget child = CompositedTransformTarget( 
														 | 
														
														 | 
														
															     Widget child = CompositedTransformTarget( 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -552,8 +503,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     ); 
														 | 
														
														 | 
														
															     ); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (widget.scrollable) { 
														 | 
														
														 | 
														
															     if (widget.scrollable) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      final baselinePadding = 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          EdgeInsets.only(top: _styles!.paragraph!.verticalSpacing.item1); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      final baselinePadding = EdgeInsets.only(top: _styles!.paragraph!.verticalSpacing.item1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       child = BaselineProxy( 
														 | 
														
														 | 
														
															       child = BaselineProxy( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         textStyle: _styles!.paragraph!.style, 
														 | 
														
														 | 
														
															         textStyle: _styles!.paragraph!.style, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         padding: baselinePadding, 
														 | 
														
														 | 
														
															         padding: baselinePadding, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -584,8 +534,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     ); 
														 | 
														
														 | 
														
															     ); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  void _handleSelectionChanged( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      TextSelection selection, SelectionChangedCause cause) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  void _handleSelectionChanged(TextSelection selection, SelectionChangedCause cause) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     widget.controller.updateSelection(selection, ChangeSource.LOCAL); 
														 | 
														
														 | 
														
															     widget.controller.updateSelection(selection, ChangeSource.LOCAL); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     _selectionOverlay?.handlesVisible = _shouldShowSelectionHandles(); 
														 | 
														
														 | 
														
															     _selectionOverlay?.handlesVisible = _shouldShowSelectionHandles(); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -614,9 +563,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             _styles, 
														 | 
														
														 | 
														
															             _styles, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             widget.enableInteractiveSelection, 
														 | 
														
														 | 
														
															             widget.enableInteractiveSelection, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             _hasFocus, 
														 | 
														
														 | 
														
															             _hasFocus, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            attrs.containsKey(Attribute.codeBlock.key) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                ? const EdgeInsets.all(16) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                : null, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            attrs.containsKey(Attribute.codeBlock.key) ? const EdgeInsets.all(16) : null, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             widget.embedBuilder, 
														 | 
														
														 | 
														
															             widget.embedBuilder, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             _cursorController, 
														 | 
														
														 | 
														
															             _cursorController, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             indentLevelCounts); 
														 | 
														
														 | 
														
															             indentLevelCounts); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -628,8 +575,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     return result; 
														 | 
														
														 | 
														
															     return result; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  EditableTextLine _getEditableTextLineFromNode( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      Line node, BuildContext context) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  EditableTextLine _getEditableTextLineFromNode(Line node, BuildContext context) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     final textLine = TextLine( 
														 | 
														
														 | 
														
															     final textLine = TextLine( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       line: node, 
														 | 
														
														 | 
														
															       line: node, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       textDirection: _textDirection, 
														 | 
														
														 | 
														
															       textDirection: _textDirection, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -652,8 +598,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     return editableTextLine; 
														 | 
														
														 | 
														
															     return editableTextLine; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  Tuple2<double, double> _getVerticalSpacingForLine( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      Line line, DefaultStyles? defaultStyles) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  Tuple2<double, double> _getVerticalSpacingForLine(Line line, DefaultStyles? defaultStyles) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     final attrs = line.style.attributes; 
														 | 
														
														 | 
														
															     final attrs = line.style.attributes; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (attrs.containsKey(Attribute.header.key)) { 
														 | 
														
														 | 
														
															     if (attrs.containsKey(Attribute.header.key)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       final int? level = attrs[Attribute.header.key]!.value; 
														 | 
														
														 | 
														
															       final int? level = attrs[Attribute.header.key]!.value; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -678,8 +623,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     return defaultStyles!.paragraph!.verticalSpacing; 
														 | 
														
														 | 
														
															     return defaultStyles!.paragraph!.verticalSpacing; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  Tuple2<double, double> _getVerticalSpacingForBlock( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      Block node, DefaultStyles? defaultStyles) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  Tuple2<double, double> _getVerticalSpacingForBlock(Block node, DefaultStyles? defaultStyles) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     final attrs = node.style.attributes; 
														 | 
														
														 | 
														
															     final attrs = node.style.attributes; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (attrs.containsKey(Attribute.quoteBlock.key)) { 
														 | 
														
														 | 
														
															     if (attrs.containsKey(Attribute.quoteBlock.key)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       return defaultStyles!.quote!.verticalSpacing; 
														 | 
														
														 | 
														
															       return defaultStyles!.quote!.verticalSpacing; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -722,8 +666,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } else { 
														 | 
														
														 | 
														
															     } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       _keyboardVisibilityController = KeyboardVisibilityController(); 
														 | 
														
														 | 
														
															       _keyboardVisibilityController = KeyboardVisibilityController(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       _keyboardVisible = _keyboardVisibilityController!.isVisible; 
														 | 
														
														 | 
														
															       _keyboardVisible = _keyboardVisibilityController!.isVisible; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      _keyboardVisibilitySubscription = 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          _keyboardVisibilityController?.onChange.listen((visible) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      _keyboardVisibilitySubscription = _keyboardVisibilityController?.onChange.listen((visible) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         _keyboardVisible = visible; 
														 | 
														
														 | 
														
															         _keyboardVisible = visible; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if (visible) { 
														 | 
														
														 | 
														
															         if (visible) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           _onChangeTextEditingValue(); 
														 | 
														
														 | 
														
															           _onChangeTextEditingValue(); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -746,9 +689,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     super.didChangeDependencies(); 
														 | 
														
														 | 
														
															     super.didChangeDependencies(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     final parentStyles = EditorStyles.getStyles(context, true); 
														 | 
														
														 | 
														
															     final parentStyles = EditorStyles.getStyles(context, true); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     final defaultStyles = DefaultStyles.getInstance(context); 
														 | 
														
														 | 
														
															     final defaultStyles = DefaultStyles.getInstance(context); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    _styles = (parentStyles != null) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        ? defaultStyles.merge(parentStyles) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        : defaultStyles; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    _styles = (parentStyles != null) ? defaultStyles.merge(parentStyles) : defaultStyles; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (widget.customStyles != null) { 
														 | 
														
														 | 
														
															     if (widget.customStyles != null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       _styles = _styles!.merge(widget.customStyles!); 
														 | 
														
														 | 
														
															       _styles = _styles!.merge(widget.customStyles!); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -808,8 +749,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   bool _shouldShowSelectionHandles() { 
														 | 
														
														 | 
														
															   bool _shouldShowSelectionHandles() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    return widget.showSelectionHandles && 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        !widget.controller.selection.isCollapsed; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    return widget.showSelectionHandles && !widget.controller.selection.isCollapsed; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   void handleDelete(bool forward) { 
														 | 
														
														 | 
														
															   void handleDelete(bool forward) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -820,8 +760,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     var textAfter = selection.textAfter(plainText); 
														 | 
														
														 | 
														
															     var textAfter = selection.textAfter(plainText); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (selection.isCollapsed) { 
														 | 
														
														 | 
														
															     if (selection.isCollapsed) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (!forward && textBefore.isNotEmpty) { 
														 | 
														
														 | 
														
															       if (!forward && textBefore.isNotEmpty) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        final characterBoundary = 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            _previousCharacter(textBefore.length, textBefore, true); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        final characterBoundary = _previousCharacter(textBefore.length, textBefore, true); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         textBefore = textBefore.substring(0, characterBoundary); 
														 | 
														
														 | 
														
															         textBefore = textBefore.substring(0, characterBoundary); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         cursorPosition = characterBoundary; 
														 | 
														
														 | 
														
															         cursorPosition = characterBoundary; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -844,10 +783,16 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   Future<void> handleShortcut(InputShortcut? shortcut) async { 
														 | 
														
														 | 
														
															   Future<void> handleShortcut(InputShortcut? shortcut) async { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     final selection = widget.controller.selection; 
														 | 
														
														 | 
														
															     final selection = widget.controller.selection; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     final plainText = textEditingValue.text; 
														 | 
														
														 | 
														
															     final plainText = textEditingValue.text; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (shortcut == InputShortcut.SAVE) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      bool saved = await widget.controller.save(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      if (!saved) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        log('Unabled to save document.'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      return; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (shortcut == InputShortcut.COPY) { 
														 | 
														
														 | 
														
															     if (shortcut == InputShortcut.COPY) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (!selection.isCollapsed) { 
														 | 
														
														 | 
														
															       if (!selection.isCollapsed) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        await Clipboard.setData( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            ClipboardData(text: selection.textInside(plainText))); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        await Clipboard.setData(ClipboardData(text: selection.textInside(plainText))); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       return; 
														 | 
														
														 | 
														
															       return; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -864,8 +809,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ); 
														 | 
														
														 | 
														
															         ); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															         textEditingValue = TextEditingValue( 
														 | 
														
														 | 
														
															         textEditingValue = TextEditingValue( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          text: 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-              selection.textBefore(plainText) + selection.textAfter(plainText), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          text: selection.textBefore(plainText) + selection.textAfter(plainText), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           selection: TextSelection.collapsed(offset: selection.start), 
														 | 
														
														 | 
														
															           selection: TextSelection.collapsed(offset: selection.start), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ); 
														 | 
														
														 | 
														
															         ); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -883,8 +827,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       return; 
														 | 
														
														 | 
														
															       return; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    if (shortcut == InputShortcut.SELECT_ALL && 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        widget.enableInteractiveSelection) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (shortcut == InputShortcut.SELECT_ALL && widget.enableInteractiveSelection) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       widget.controller.updateSelection( 
														 | 
														
														 | 
														
															       widget.controller.updateSelection( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           selection.copyWith( 
														 | 
														
														 | 
														
															           selection.copyWith( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             baseOffset: 0, 
														 | 
														
														 | 
														
															             baseOffset: 0, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -938,16 +881,14 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   void _onChangeTextEditingValue() { 
														 | 
														
														 | 
														
															   void _onChangeTextEditingValue() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     _showCaretOnScreen(); 
														 | 
														
														 | 
														
															     _showCaretOnScreen(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     updateRemoteValueIfNeeded(); 
														 | 
														
														 | 
														
															     updateRemoteValueIfNeeded(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    _cursorController.startOrStopCursorTimerIfNeeded( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        _hasFocus, widget.controller.selection); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    _cursorController.startOrStopCursorTimerIfNeeded(_hasFocus, widget.controller.selection); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (hasConnection) { 
														 | 
														
														 | 
														
															     if (hasConnection) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       _cursorController 
														 | 
														
														 | 
														
															       _cursorController 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ..stopCursorTimer(resetCharTicks: false) 
														 | 
														
														 | 
														
															         ..stopCursorTimer(resetCharTicks: false) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ..startCursorTimer(); 
														 | 
														
														 | 
														
															         ..startCursorTimer(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    SchedulerBinding.instance!.addPostFrameCallback( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        (_) => _updateOrDisposeSelectionOverlayIfNeeded()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    SchedulerBinding.instance!.addPostFrameCallback((_) => _updateOrDisposeSelectionOverlayIfNeeded()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (mounted) { 
														 | 
														
														 | 
														
															     if (mounted) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       setState(() { 
														 | 
														
														 | 
														
															       setState(() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // Use widget.controller.value in build() 
														 | 
														
														 | 
														
															         // Use widget.controller.value in build() 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -990,8 +931,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   void _handleFocusChanged() { 
														 | 
														
														 | 
														
															   void _handleFocusChanged() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     openOrCloseConnection(); 
														 | 
														
														 | 
														
															     openOrCloseConnection(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    _cursorController.startOrStopCursorTimerIfNeeded( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        _hasFocus, widget.controller.selection); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    _cursorController.startOrStopCursorTimerIfNeeded(_hasFocus, widget.controller.selection); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     _updateOrDisposeSelectionOverlayIfNeeded(); 
														 | 
														
														 | 
														
															     _updateOrDisposeSelectionOverlayIfNeeded(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (_hasFocus) { 
														 | 
														
														 | 
														
															     if (_hasFocus) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       WidgetsBinding.instance!.addObserver(this); 
														 | 
														
														 | 
														
															       WidgetsBinding.instance!.addObserver(this); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1022,8 +962,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       _showCaretOnScreenScheduled = false; 
														 | 
														
														 | 
														
															       _showCaretOnScreenScheduled = false; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															       final viewport = RenderAbstractViewport.of(getRenderEditor())!; 
														 | 
														
														 | 
														
															       final viewport = RenderAbstractViewport.of(getRenderEditor())!; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      final editorOffset = getRenderEditor()! 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-          .localToGlobal(const Offset(0, 0), ancestor: viewport); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      final editorOffset = getRenderEditor()!.localToGlobal(const Offset(0, 0), ancestor: viewport); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       final offsetInViewport = _scrollController!.offset + editorOffset.dy; 
														 | 
														
														 | 
														
															       final offsetInViewport = _scrollController!.offset + editorOffset.dy; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															       final offset = getRenderEditor()!.getOffsetToRevealCursor( 
														 | 
														
														 | 
														
															       final offset = getRenderEditor()!.getOffsetToRevealCursor( 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1106,8 +1045,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       final value = textEditingValue; 
														 | 
														
														 | 
														
															       final value = textEditingValue; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       final data = await Clipboard.getData(Clipboard.kTextPlain); 
														 | 
														
														 | 
														
															       final data = await Clipboard.getData(Clipboard.kTextPlain); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       if (data != null) { 
														 | 
														
														 | 
														
															       if (data != null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        final length = 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            textEditingValue.selection.end - textEditingValue.selection.start; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        final length = textEditingValue.selection.end - textEditingValue.selection.start; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         widget.controller.replaceText( 
														 | 
														
														 | 
														
															         widget.controller.replaceText( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           value.selection.start, 
														 | 
														
														 | 
														
															           value.selection.start, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           length, 
														 | 
														
														 | 
														
															           length, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1116,9 +1054,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         ); 
														 | 
														
														 | 
														
															         ); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // move cursor to the end of pasted text selection 
														 | 
														
														 | 
														
															         // move cursor to the end of pasted text selection 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         widget.controller.updateSelection( 
														 | 
														
														 | 
														
															         widget.controller.updateSelection( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            TextSelection.collapsed( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                offset: value.selection.start + data.text!.length), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            ChangeSource.LOCAL); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            TextSelection.collapsed(offset: value.selection.start + data.text!.length), ChangeSource.LOCAL); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       } 
														 | 
														
														 | 
														
															       } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1128,8 +1064,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     if (data == null) { 
														 | 
														
														 | 
														
															     if (data == null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       return false; 
														 | 
														
														 | 
														
															       return false; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    return textEditingValue.text.length - value.text.length == 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        data.text!.length; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    return textEditingValue.text.length - value.text.length == data.text!.length; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   @override 
														 | 
														
														 | 
														
															   @override 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1162,8 +1097,7 @@ class _RawEditorState extends EditorState 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   @override 
														 | 
														
														 | 
														
															   @override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  void userUpdateTextEditingValue( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      TextEditingValue value, SelectionChangedCause cause) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  void userUpdateTextEditingValue(TextEditingValue value, SelectionChangedCause cause) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     // TODO: implement userUpdateTextEditingValue 
														 | 
														
														 | 
														
															     // TODO: implement userUpdateTextEditingValue 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1213,8 +1147,7 @@ class _Editor extends MultiChildRenderObjectWidget { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															   @override 
														 | 
														
														 | 
														
															   @override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  void updateRenderObject( 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      BuildContext context, covariant RenderEditor renderObject) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  void updateRenderObject(BuildContext context, covariant RenderEditor renderObject) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     renderObject 
														 | 
														
														 | 
														
															     renderObject 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       ..document = document 
														 | 
														
														 | 
														
															       ..document = document 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       ..container = document.root 
														 | 
														
														 | 
														
															       ..container = document.root 
														 |