From b8ff7902bab08d3d5e1f39f00efa788ffc3d54ff Mon Sep 17 00:00:00 2001 From: CatHood0 Date: Sun, 18 Aug 2024 06:44:25 -0400 Subject: [PATCH] Doc: more documentation about the new service --- .../spellchecker/default_spellchecker_service.dart | 5 ++++- .../spellchecker/simple_spellchecker_impl.dart | 11 ++++++++++- .../editor/spellchecker/spellchecker_service.dart | 12 +++++++++++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/lib/src/editor/spellchecker/default_spellchecker_service.dart b/lib/src/editor/spellchecker/default_spellchecker_service.dart index 0d6c3a77..95e457d8 100644 --- a/lib/src/editor/spellchecker/default_spellchecker_service.dart +++ b/lib/src/editor/spellchecker/default_spellchecker_service.dart @@ -2,11 +2,14 @@ import 'package:flutter/gestures.dart' show LongPressGestureRecognizer; import 'package:flutter/material.dart' show TextSpan; import 'spellchecker_service.dart' show SpellcheckerService; +/// A default implementation of the [SpellcheckerService] +/// that always will return null since Spell checking +/// is not a standard feature class DefaultSpellcheckerService extends SpellcheckerService { DefaultSpellcheckerService() : super(language: 'en'); @override - void dispose() {} + void dispose({bool onlyPartial = false}) {} @override List? fetchSpellchecker(String text, diff --git a/lib/src/editor/spellchecker/simple_spellchecker_impl.dart b/lib/src/editor/spellchecker/simple_spellchecker_impl.dart index b68f9135..aa26b108 100644 --- a/lib/src/editor/spellchecker/simple_spellchecker_impl.dart +++ b/lib/src/editor/spellchecker/simple_spellchecker_impl.dart @@ -4,12 +4,17 @@ import 'package:simple_spell_checker/simple_spell_checker.dart'; import 'spellchecker_service.dart'; +/// SimpleSpellCheckerImpl is a simple spell checker for get +/// all words divide on different objects if them are wrong or not class SimpleSpellCheckerImpl extends SpellcheckerService { SimpleSpellCheckerImpl({required super.language}) : checker = SimpleSpellChecker( language: language, safeDictionaryLoad: true, ); + /// [SimpleSpellChecker] comes from the package [simple_spell_checker] + /// that give us all necessary methods for get our spans with highlighting + /// where needed final SimpleSpellChecker checker; @override @@ -26,7 +31,11 @@ class SimpleSpellCheckerImpl extends SpellcheckerService { } @override - void dispose() { + void dispose({bool onlyPartial = false}) { + if(onlyPartial) { + checker.disposeControllers(); + return; + } checker.dispose(closeDirectionary: true); } } diff --git a/lib/src/editor/spellchecker/spellchecker_service.dart b/lib/src/editor/spellchecker/spellchecker_service.dart index 22748eb3..74195a7a 100644 --- a/lib/src/editor/spellchecker/spellchecker_service.dart +++ b/lib/src/editor/spellchecker/spellchecker_service.dart @@ -1,12 +1,22 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; +/// A representation a custom SpellCheckService. abstract class SpellcheckerService { SpellcheckerService({required this.language}); final String language; + /// dispose all the resources used for SpellcheckerService + /// + /// if [onlyPartial] is true just dispose a part of the SpellcheckerService + /// (this comes from the implementation) + /// + /// if [onlyPartial] is false dispose all resources + void dispose({bool onlyPartial = false}); - void dispose(); + /// Facilitates a spell check request. + /// + /// Returns a [List] with all misspelled words divide from the right words. List? fetchSpellchecker(String text, {LongPressGestureRecognizer Function(String)? customLongPressRecognizerOnWrongSpan});