Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Allow for pluggable spell-checking modelled after Linter #74

@dmoonfire

Description

@dmoonfire

I wasn't entirely sure where the best place to put this, but this seems like the most likely the best one. I'm curious about thoughts and designs on making spell-check pluggable much like how linter provides a framework for linting and different lint packages provide the actual processing. This is related to using other dictionaries but more than just choosing a different file.

This would allow supporting Emacs-style "LocalWords" in a file or directory-specific word lists (both via Atom packages). The latter is important to me because I write novels and short stories. In most of my novels, there are hundreds of project-specific words that I don't want in my system dictionary but I do want checked into Git (saves me adding the words back in every time my machine explodes). I also have genre and world-specific lists ("mage" for example for fantasy genre, "Fedran" for my world).

For Emacs, I wrote caspell which got me the bulk of this functionality but I'd like to switch over to Atom. I already miss it.

After working with the linter framework, it seems like the same could be done for spell-check. Create a framework that gathers up all the packages that provide the spell-check service, and then query them to see if a given word is correct among any of them. If it isn't, then gather up suggestions with a given weight and display the top X unique values. Most of the spell-check already provides that, I'd just like a framework to write my per-directory word lists that coordinates with the system dictionary.

Linter could also be used for spell-checking in general and I considered writing the framework in that to just call spell-check, but I wasn't sure how closely you'd want those packages tied together. Linter doesn't have the ability to display fixes (Correct Spelling..., context menu), but it is possible to add that if that would be a better framework to consider.

These are other things I'm aiming for in the future, which may or may not be applicable for the framework (but probably not spell-check directly):

  • It could also provide dictionary and thesaurus features. With word lists, this wouldn't be available (maybe via a providesSpelling or providesDictionary function), but that would allow for things like dictionary.com or Google lookup of definitions.
  • Also, a "describe this" function that brings up information about the word (that would probably be a different framework though). I'd love to have a Control-F1 (Visual Studio's Describe This) that brought up information about the item under the cursor.

This is something I want, so I'm willing to do coding toward it. But, better to get feedback before blindly writing something. :)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions