# Pure elisp spell checking in Emacs

The question What options are there for doing spell-checking in emacs discuss various spell checking solutions for Emacs. Emacs ispell interface uses external tools such as Aspell or Hunspell for spell checking. Considering the fact that many free dictionary files are available (for example by Openoffice see for example the dictionary file en_US.zip) I am wondering if it would be possible to write a native spell checking function in Emacs using such free dictionary files.

Added: More precisely I am wondering if there are existing packages which can be used for spell-checking (without using external tools such as Aspell or Hunspell) within Emacs. A tool which checks if a word is correct and if not suggests some corrections.

In case the answer is negative, any hint to do this would be helpful.

• Of course it would be possible. Can you clarify if you are looking for existing packages that do this or for pointers of how you could implement it yourself. – verdammelt Feb 10 '15 at 17:49
• @Name, I've seen you ask a few Windows-related questions, and I suspect that Windows is what prompted you to ask this one. I highly recommend using 32-bit Cygwin on Windows. I use it on 2/3 of my computers (work and gaming pc) With the emacs-w32 package, Emacs uses the native Windows GUI. You get access to a ton of prebuilt Unix, Linux, and GNU packages (including aspell), and the ability to easily compile others from source (e.g., aspell compiles fine with no extra effort in Cygwin). Granted, there are hiccups, but overall I think it's better than native Windows. – nanny Feb 10 '15 at 18:10
• @Name the problem with on-the-fly spellchecking, of course, will be performance. Emacs Lisp is not fast, and this is not really the sort of thing that it does well. Because you really don't want to block the main thread, you'll need to spawn an async child process, to do the spellchecking. This would probably be more work than it's worth, unless it's worth an awful lot. – PythonNut Feb 10 '15 at 19:56
• Peter Norvig says that his Python spell checker is very fast. I guess reimplementing it in Elisp might be a nice exercise. – mbork Mar 23 '15 at 20:48
• Here it is as a decently working minor mode: gist.github.com/jordonbiondo/7a729b652360a528f117 You'll need to provide your own dictionary file, but there is a link to one in the docs. – Jordon Biondo May 1 '15 at 13:45

see in particular se-spell.el and elisp-checker.el.