Since my colleague Martin decided it would be a good idea to integrate the spellchecker I made in to the development tools, one thing that has cropped up a couple of times on the mailing list is the desire to spellcheck against multiple dictionaries. This isn't just "English" and "My custom words" but actually "English" and "My native language" and "My custom words" and "Words that come from the image". Take a word like "Filename".. it's a compute term, not really an English word that you'd find in the dictionary, so we shouldn't pollute our language dictionaries with terms that we decide to make up for our domain.
In the latest Spellchecker2 package you'll find an improved word suggestions engine (it was finding words off by one letter! I'm amazed no body noticed *embarassing*). But you'll also find the hasWord: and suggestWords: API on SymbolTable.
This is not an efficient implementation - for that we'd need to construct a Trie or FSA. It runs about 50x slower than using the Node/Vocabulary classes.. but only for suggesting words, which is usually done when you right click on a misspelt word. Identifying that a word is not in the SymbolTable is, obviously, very fast.
The neat thing here is you can write code like:
SymbolTable current suggestWords: 'Strin' which in my image returns String and Stdin. Stdin is definitely not going to be found in an English dictionary.
I don't control the various RBCodeHighlighter packages that are being worked on in the mailing list, but I hope they'll use this new functionality to further enhance the spellchecking experience in our development tools.