diff --git a/lib/core/controllers/colored_text_editing_controller.dart b/lib/core/controllers/colored_text_editing_controller.dart index 69dd2c0..0b09873 100644 --- a/lib/core/controllers/colored_text_editing_controller.dart +++ b/lib/core/controllers/colored_text_editing_controller.dart @@ -13,7 +13,7 @@ class ColoredTextEditingController extends TextEditingController { /// An [OverlayEntry] for the [Overlay] class. /// This entry represents the floating popup /// that appears on a mistake. - OverlayEntry? overlayEntry; + OverlayEntry? _overlayEntry; /// Represents the maximum numbers of suggestions allowed. final int suggestionsLimit; @@ -104,8 +104,7 @@ class ColoredTextEditingController extends TextEditingController { : mistake.replacements.sublist(0, suggestionsLimit); /// Parsing the mistake enum types to string type - final String mistakeName = - mistake.type.name[0].toUpperCase() + mistake.type.name.substring(1); + final String mistakeName = mistake.name; /// Mistake highlighted TextSpan yield TextSpan( @@ -131,7 +130,7 @@ class ColoredTextEditingController extends TextEditingController { /// To remove overlay if present. _removeHighlightOverlay(); - overlayEntry = OverlayEntry( + final overlayEntry = OverlayEntry( builder: (BuildContext context) { return SuggestionsPopup( mistakeName: mistakeName, @@ -153,9 +152,8 @@ class ColoredTextEditingController extends TextEditingController { }, ); - Overlay.of(context).insert( - overlayEntry ?? OverlayEntry(builder: (_) => Container()), - ); + _overlayEntry = overlayEntry; + Overlay.of(context).insert(overlayEntry); }, text: text.substring(mistake.offset, mistake.offset + mistake.length), @@ -183,8 +181,8 @@ class ColoredTextEditingController extends TextEditingController { } void _removeHighlightOverlay() { - overlayEntry?.remove(); - overlayEntry = null; + _overlayEntry?.remove(); + _overlayEntry = null; } /// Returns color for mistake TextSpan style diff --git a/lib/domain/mistake.dart b/lib/domain/mistake.dart index 7c556b0..321619d 100644 --- a/lib/domain/mistake.dart +++ b/lib/domain/mistake.dart @@ -19,6 +19,10 @@ class Mistake { /// Sorted by probability. final List replacements; + /// Name of the mistake in string form. + /// The first letter will be capitalized + String get name => type.name[0].toUpperCase() + type.name.substring(1); + /// Creates a new instance of the [Mistake] class. const Mistake({ required this.message,