Misspelled - Chat Spellchecker
Misspelled is a chat spell-checker addon. Misspelled watches the chat messages you type, highlighting any misspellings and offering suggestions for any misspelled words it finds.
I've included in the US & UK English dictionaries some Warcraft specific proper nouns, including the zone names, and all dungeon and raid boss names. Your friends and guild members are also automatically added, and shouldn't get flagged as misspelled words..Misspelled utilizes the HunSpell style, affix (prefix/suffix) compressed dictionaries. The same ones used in Chrome, Firefox, and OpenOffice. Misspelled provides suggestions based on words that phonetically sound like the misspelled word, along with providing suggestions based on common mistakes of spelling. While Misspelled can detect nearly the same number of individually correctly spelled words as OpenOffice, it's suggestion engine, is "somewhat" less complicated, than the HunSpell implementation.
Misspelled includes dictionaries for US-English, UK-English, French, German, Italian, Russian (experimental), and Spanish. The appropriate dictionary, for your game client locale, will auto-load, or you can manually choose what dictionary to use from Misspelled's Interface/Addons options page.
I'm attempting to localize the menus and configuration page. You can help by visiting: http://www.wowace.com/addons/misspelled/localization
Misspelled works with WIM (Wow Instant Messenger), and is compatible with: Prat, Skinner, and Chatter.
Usage note: Spell Checking is performed as you complete each word you've typed. The last word in the chat box, isn't spell checked until you type some form of word terminator, either a period, space, or some other word separating punctuation. Spell checking is very fast; but isn't performed needlessly, while a word is being typed.
Misspelled is compatible with Wow, Wow Classic/Wrath/Cata If you are having problems with Misspelled, please try updating or disabling all other chat addons you may be running.
Official Distribution Points
Curse: http://www.curse.com/addons/wow/misspelled
WowInterface: http://www.wowinterface.com/downloads/info13493-Misspelled.html
Donations accepted to: https://www.paypal.com
Change Log:
- v1.11.3 - Updated for The War Within. Addon options are working and some proper nouns for TWW for the US and GB dicrionaries were added.
- v1.9.5 - Fixed packaging issue to publish Wrath version. Added the word: Oathstone to the US and GB dictionary word lists. Fixed a few escape sequence errors Luacheck found.
- v1.9.0 - TOC update for Wow 10.0 Dragonflight. Added some proper nouns for Dragonflight for US and GB dictionaries.
- v1.8.8 - Added proper nouns for Shadowlands Eternity's End
- v1.8.7 - TOC update for Wow 9.2, Classic and BCC
- v1.8.6 - TOC updated for compatibility with Wow 9.1.5, Classic and BCC
- v1.7.4 - Fixes for Wow Classic
- v1.7.2-r76 - Added updates suggested by tammymg to only allow a max of 12 color code tags in the chat edit box, and fixed a local var typo.
- v1.7.1-r75 - TOC bump for patch 8.1. Fixed suggestion popup error, and dictionary editor PlaySound errors.
- v1.5.18-r66 - TOC Bump for patch 5.2. Teh vs the, hard coded rule added.
- v1.5.15-r63 - Added some Pandaria proper nouns to the enUS English dictionary.
- v1.5.11-r59 - Added missing Cataclysm instance boss names, to the enUS English dictionary.
- v1.5.10-r58 - Version bump to update embedded libs.
- v1.5.08-r56 - Added some Cataclysm proper nouns to the enUS and enGB dictionaries. (New zone names, dungeons, bosses, Worgen, etc...)
- v1.5.07-r55 - Fix needed for compatibility with the PTR v4 and Cataclysm game client.
- v1.5.06-r54 - Added support for UI localization. Now I just need some help with translations. "Fixed" compatibility with the addon Gryphonheart Items. (GHI) Gryphonheart Items begins it's item color tags with a (|C) capitol C (vs the standard |c). I added that possibility to the chat text parsing routines.
- v1.5.04-r52 - Added itIT Italian dictionary, including Chromium delta words.
- v1.5.03-r51 - Fix an error preventing the enGB dictionary from loading.
- v1.5.02-r50 - Added ruRU - Russian dictionary (experimental), and support for PTR patch 3.3.5's IM chat changes, that introduce multiple chat edit boxes. This version is compatible with both release and PTR versions of the game client.
- v1.4.02-r48 - Corrected a typo in the .toc file. The addon Title entry was mistakenly mistyped. "Mispelled" was changed to "Misspelled". Changing the title, may re-enable the addon, where it has been explicitly disabled.
- v1.4.01-r47 - Added a UK English (enGB) dictionary. Those wanting to use this dictionary, should uncheck the auto-dictionary selection option, and select the enGB option, then reload. Like the other Misspelled dictionaries, this one was derived from the enGB dictionary included in Openoffice & Chromium. Included in this dictionary are the Wow proper nouns I included in the US English dictionary, including zone names, raid boss names, and a few other Warcraft specific words. Due to the similarity to US English, the suggestion engine uses the same phonetic rules for both dictionaries.
- r46 - TOC updated for patch 3.3
- r45 - Added UI to show, and allow deletes, of words added to user dictionary. You'll find the "Edit Dictionary..." button, in the Interface/Options area. Reminder: you can add words to your user dictionary, by right-clicking a misspelled word, and clicking, "Add to Dictionary"
- r42 - Beta release for PTR Patch 3.3. Misspelled is fully compatible with the current PTR. This beta release contains only a TOC bump, and no other changes. I'll leave this release flagged as beta until patch 3.3 is released and I can perform final testing.
- r41 - Fixed a version number typo.
- r40 - Modified a hook to WIM, needed to remove the highlighting of misspelled words, prior to sending a chat message to the server. The author of WIM is due to add a specific API, just for this purpose, in the next release.
Added the following words to the US English dictionary (includes some proper nouns from the patch 3.3 PTR): Frostwing, Sindragosa, Baine, San'layn, Bronzebeard, Valanar, Doomguard, Saurfang, Plagueworks, Highlord, Tirion, Valithria, runeblade, Fordring, Muradin, Putricide, Deathwhisper, Hippogryph, Bloodhoof, Lich, Frostmourne, Wrynn, Marrowgar, wyrm, Skybreaker, undeath, Orgrim's, Dreamwalker, Shadowfiend, Mograine, Darion, Lana'thel - r39 - Added 77 additional words to the US English dictionary. (Patch 3.2 instance boss names)
- r37 - Replaced French dictionary with the one used in Chromium. I included the additional words Chromium added.
- http://src.chromium.org/viewvc/chrome/trunk/deps/third_party/hunspell/dictionaries/ (fr_FR.dic_delta)
Fixed a typo/bug in the UTF8 section of RemovePrefix. This was causing words to be flagged as misspelled, if you were using one of the UTF8 (non-English) dictionaries and the word contained one of the affix compressed prefixes, even though the word was spelled correctly. - r36 - Added a French dictionary.
- r35 - Hopefully fixed the issue that was crashing client.
Hooked ChatThrottleLib:SendChatMessage so I can clean any misspelled highlighted words before the message is sent. - r34 - Misspelled now adds spell-checking to WIM chat windows. Please report any issues you have with this new feature.
- r33 - Guild member and friends player names phonetic codes were always being generated using the US English phonetic code routine. The generic phonetic code is now used for German and Spanish. Locals added for ipairs and pairs, to WordDict.lua, to increased speed.
- r32 - Added 642 new base words to the US English dictionary. See the change-log for more info.
- r31 - Fix an error occurring for new users that were not using a prior version and didn't have a savedVariables Misspelled.lua file.
- r30 - Spanish (esES) dictionary support added.
There is a new interface options page, that allows you to manually select a dictionary to load.
Fewer and better suggestions returned for misspelled words.
UTF8 multi-byte character encodings support added. - r25-r27 Capitalized misspelled words will stay capitalized after selecting a replacement suggestion. Long term I want to detect the beginning of a sentence, so I can correct incorrect Capitalization. For now this change should help.
Added these characters to the list of word separators: "(", ")", ";"
The Suggestion ranking EditDistance method's substitution cost, is now case insensitive. - r24 - Changed the misspelled highlighting to a medium-cyan-ish color. Hopefully this will make it easier to see misspelled words in all the common channels: Say, Party, Raid, Guild, Whisper, Trade, Yell
- r23 - Added Ace3 OptionDep tag to the .toc, so the addon would properly load for those running without libs embedded.
- r22 - Now uses AceEvent to replace the hidden frame and OnEvent hook needed to load guild members.
Added the "words" LFG and LFM to the US English dictionary.
When a suggestion is selected to replace a given misspelled word (or Ignore or Add to Dic. was selected), the cursor was positioned at end of the replaced word. Now, if there is a space after that word, the cursor is positioned to the right of that space. This should reduce the spell-checking needed when the only character on the line, to the right of a cursor, is a space. - r21 - Changed some of the frame xlm code, to hopefully hide a phantom dropdown frame that was being reported showing up.
- r20 - A German dictionary has been added and will load if you are using the German client.
Note: No Warcraft specific proper nouns have been included in the German dictionary.
Did some work to help ensure Misspelled's compatability with other chat addons.
Various speed improvements. - r19 - Fix for errors reported loading friends player names into the dictionary.
- r18 - Reduced memory needed to store the dictionary in half. Affix keys and phonetic codes are no longer stored using subtables. Memory usage went from 11.6Mb to 5.7Mb
The user dictionary storage format was changed to match the, updated, in memory dictionary storage format. Any existing user dictionaries will be converted the first time you load r18.
Improved the suggestions generation, especially when the word contains a capital letter.
Maximum number of suggestions returned is now 8, not 10. - r17 - No UI or functionality changes. Made some parts of the code more efficient.
- r16 -
Maximum suggestions increased to 10
Fixed an error where words in all CAPS, or words that contained numbers were throwing a Lua error.
Fixed the chat edit cursor position so it moves naturally as you perform edits in and around misspelled highlighted words. Wow this was a lot of work. Did you know you can crash Wow, with an invalid cursor position!
Fixed a problem where the spell checking routine was firing twice, if it found a misspelled word.
More code cleanup. There shouldn't be any remaining, non reachable code.
We're getting very near release quality! - r15 - The Misspelled word suggestions pop-up dialog now takes up less space. And a "Cancel" option was added to the bottom of the pop-up.
Guild members weren't always loading. The loading guild members routine is now delayed until the first ChatEditBox_OnTextChanged event. I wasn't always getting guild member info during addon loading. - r14 - Fixed error loading guild members
- r13 - Your friends and guild roster are now, upon zone-in, added to the list of correctly spelled words. Suggestions that match a friend or guild member player name are flagged with either (Friend) or (Guild), in the suggestions right-click pop-up. Lots of cleanup and remarks added to the code. Fixed cases where editing near the boundary of a highlighted misspelled word would mangle color tag information leaving only partial color tags. Started implementing routines to correctly set the cursor position when the chat text is changed by Misspelled. More work is still needed here.
- r11 - Fixed an error that occurred when adding a word to the user dictionary.
- r10 - Debug print statements turned off, fixes related to clearing cached information about the current chat text.
- r09 - Fixes for Chatter
- r07 - Added Wrath dungeon and raid boss names to the standard Dictionary, along with the words: Jewelcrafting, Leatherworking, mana, and Warcraft
- r06 - Fixes problems with embedded links.
- r05 - "Ignore All" and "Add to User Dictionary" features implemented.
-Nate
Misspelled now integrates with WIM (Wow Instant Messenger), providing interactive spell-checking in WIM chat windows. Also now includes a French spell-checking dictionary.
Thanks
I only added proper nouns or the parts of proper nouns where the words wern't in the US English dictionary.
I didn't add any suffix information for the words I added. So words like "Razorscale's breath" may show up as misspelled, due to the missing suffix.
Let me know what you feel is missing and I'll be happy to add the additional words.
Thanks.
Either way, thank you so much for this addon.
I'll keep testing and make sure I've got a release ready when v3.2 goes live.
-Nate
Do you think it would be possible to have a user-defined list of words to replace? Like replacing "teh" with "the"? I don't know if that would be possible, but if it is, that would be awesome.
Now onto the topic of auto-corrections.
The string ‘teh’ is starting to haunt me, more and more. :)
It would be rather simple to add code to "always" apply auto-corrections. Issues arise with scenarios when the auto-correction isn't appropriate and shouldn't be auto-applied. Example: pasting in a URL. To lower the chance of applying a bad auto-correction you really need some form of sentence context, to make sure your applying the auto-correction only when it makes sense. Secondly you need a way to allow the user to unto a misapplied auto-correction. An example of this can be seen in MS Word: Try typing the word 'teh' into MS Word 2007, it should auto-correct to 'the'. Then backspace over the 'he' and retype 'eh'. Word no longer applies the auto-correction, and simply flags the word as misspelled.
The cpu cycles needed to come up with a confidence factor for apply an auto-correction, based on context, may exceed what can practically be done in an addon. Investigating the work done by the OpenOffice grammar checker extension, LanguangeTool http://www.languagetool.org/, is on my list.
There may be some middle ground here. Bottom line, the feature is bubbling away in my head. I just haven’t come up with a elegant and efficient way to implement a solution.
-Nate
It's good to know you're thinking of it, and it would require a bit of fine-tuning to be effective, but hopefully the feature will find it's way into the addon at some point.
But as for the problem with copying and pasting links, and please do forgive my ignorance of things here as I haven't the slightest clue about LUA, couldn't you count words beginning with "http://" or "www." as immune to the auto-replacement feature and for those who don't include either of those words ending in ".com", ".net", and the like? Just kinda shooting blindly there.
Anyway, thank you for responding, thank you for putting your time into such a wonderful addon, and have a good day! :)
I'll download the latest Chatter and give it another test.
Here's a test to try. With the mouse pointer positioned over the chat edit box, type: /print GetMouseFocus():GetName()
and press enter.
The result should read: "ChatFrameEditBox". If it doesn't then some addon is replacing the chat edit box. Report back the frame name you see.
Thanks
-Nate
I'm glad to hear your up and running on the latest version. The change-log outlines the many, many issues that have been fixed since version r17.
Version r18 greatly reduced the memory needed to store the internal dictionary. Adding friends and guild player names to the dictionary will only add a very small amount of additional memory.
-Nate
I run that a lot, have it on macro, it's always 11.8 minimum. When in use it grows to 12.7 and I think once I saw it at 14 something. I am un-guilded and keep less than ten in friends list.
Okay and here it is I was all set to even post screenshots for you and what would my eyes see lmao - 5.7mb on start!
So - I know only one answer to this - I was using Version: 0.1.17 when I was speaking of the 11.8mb on fresh start. It was three days ago when I downloaded Version 0.2.32.
So something you changed between .toc Version: 0.1.17 and .toc Version 0.2.32 fixed it up. What I don't understand though is ever since my first post on this webpage and the ones after it I was running .toc Version: 0.1.17 it was the newest version to download but even back then you claimed 5.8mb on yours - were you using an updated version long before the rest of us had it?
So issue solved I guess! Whatever you changed recently fixed the memory use.
Thanks!
SIDENOTE: I was guilded at the time it was 11.8mb - the guild had 57 total guild alts. So what you said about adding another garbage collection after loading friends list or guild list I don't think will matter one way or another because I always ran that garbage collect macro anyhow and it never made a difference for your addon, the lowest it always stayed at is 11.7mb.
So - again - either it's something you recently changed between the two versions that fixed it and made it 5.7mb or the problem has to do with being guilded because the only two things that changed for me (in game) is I updated to your .toc Version 0.2.32 and I disbanned my guild.
So now I am wondering if being in a guild, even though it was small was the issue. I was the guild master. If you don't think the changes you made between the two versions would affect memory use is it possible being a guild master of small guild had anything to do with it? I don't know. All I know now is I am unguilded and use .toc Version 0.2.32 and I'm at 5.7mb on start. So now I am wondering if I still had my guild, what would it be 11.7 or 5.7mb? Oh well, hopefully you have a perfectly good answer =)
I perform a garbage collection after loading the dictionary. I'm wounding if, after loading your friends and guild members, I should do another.
Try typing /run collectgarbage("collect")
See what your memory is after that.
-Nate