Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simple Spell Checker is getting a fully rewrited #10

Open
CatHood0 opened this issue Sep 22, 2024 · 0 comments
Open

Simple Spell Checker is getting a fully rewrited #10

CatHood0 opened this issue Sep 22, 2024 · 0 comments
Assignees
Labels
breaking_changes This issue shows that there will be a new update with breaking changes that must be planned and repo documentation Improvements or additions to documentation enhancement New feature or request in_progress This issue is currently being fixed by a contributor. notice This issue is a notice to inform new contributors and users about new changes.

Comments

@CatHood0
Copy link
Owner

CatHood0 commented Sep 22, 2024

Why does this happen? Is the current implementation wrong?

While it may be true that the current implementation works in such a way that it is simple and fast to use. But it brings with it many problems that cannot be fixed without breaking something. Something similar is being done in singerdmx/flutter-quill#2246 which is planned to create a new reimplementation due to the problems that are not only mentioned there, but also in the following ones:

  • No support for checking only specific parts of the text (forcing us to use the entire string to be able to give us the TextSpan we want).
  • Many words are lost or directly misspelled
  • Slowness when initializing the SimpleSpellChecker or MultiSpellChecker
  • Excessive weight of the package (over 80 MB)
  • Errors with Unicode characters (with unicodes we refer to words with accents, umlauts, and special characters that require more than one key to be written)
  • No support for using Flutter's native SpellCheckService instead of a client-side SpellChecker.
  • It forces us to have all the dictionaries without asking us if we want to ignore all the others.

Due to these mentioned problems, a new reimplementation has been proposed and is planned.

What would the following new changes bring?

The new implementation will consist of a base that will allow us to not only create our own customized implementations based on what we want, but will also add internal packages to expand the functionalities. Note that there will only be one package per language (those that are currently supported).

What advantages does this new reimplementation bring us?

  • Greater stability and efficiency when using
  • Obtaining erroneous words with more precision, with almost no cost in performance.
  • Less weight to the current implementation (it is planned to divide the package into several parts).
  • Selective import of languages. That is, we will only be able to contain the languages ​​that we add to our projects, which avoids forcing us to add dictionaries that will never be used.
  • Support for the native SpellCheckService of Flutter along with an implementation adjusted to what this package proposes.

During the next few months these changes will be made. So we must be attentive to breaking changes, because this will be a major update.

@CatHood0 CatHood0 added documentation Improvements or additions to documentation enhancement New feature or request labels Sep 22, 2024
@CatHood0 CatHood0 self-assigned this Sep 22, 2024
@CatHood0 CatHood0 added in_progress This issue is currently being fixed by a contributor. notice This issue is a notice to inform new contributors and users about new changes. breaking_changes This issue shows that there will be a new update with breaking changes that must be planned and repo labels Sep 22, 2024
@CatHood0 CatHood0 pinned this issue Sep 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking_changes This issue shows that there will be a new update with breaking changes that must be planned and repo documentation Improvements or additions to documentation enhancement New feature or request in_progress This issue is currently being fixed by a contributor. notice This issue is a notice to inform new contributors and users about new changes.
Projects
None yet
Development

No branches or pull requests

1 participant