Those of you who have worked with IntelliJ IDEA and related products know that all those IDEs have incorporated a built-in spell checker for a very long time. With ReSharper, the situation is slightly different in that we have several spell checking plugins that provide similar functionality.
This post is an overview of a new commercial version of ReSpeller, a plugin, also available in a free edition, which provides spell checking capabilities for ReSharper.
How It Works
ReSpeller’s operation is simple: whenever it sees a spelling mistake in an identifier, comment or string literal, it immediately flags it and offers several options for fixing the problem:
The first option is Replace with… and if you choose it, you’ll get a handy popup over the offending text with some suggestions for fixing it:
The second option is to Add word to user dictionary, in which case the user can pick the dictionary to save add the word to:
Finally, there’s an option to Add custom word to user dictionary, in which case the user can edit the word before it gets added:
Spell Checking Scope
ReSpeller covers a wide array of code constructs and languages. The elements it checks spelling on are best illustrated via ReSpeller’s Inspection Severity settings page:
From the list of tags next to the inspection types, you can surmise that ReSpeller supports a very wide array of technologies, including:
Markup languages: HTML, XML, XAML, RESX
Mixed-language files: CSHTML (Razor), ASPX, ASHX
The spell checker itself doesn’t support just English, but other languages, too. Add a new language and you get spelling corrections from all dictionaries installed:
In addition to the above, when you fix a typo in an identifier, ReSpeller automatically fires off a Rename refactoring, making sure that your spelling correction doesn’t result in loss of consistency:
Note that ReSpeller also highlights spelling errors right in the Rename dialog.
Typo inspections are also available in aggregate form, so if you open up ReSharper | Inspect | Code Issues in Project/Solution you’ll be able to see them alongside other inspections:
There’s a lot of cases where spell checking is critical. For example, as a blogger, I really hate spelling mistakes creeping into my code, because it means I didn’t check what I wrote properly before I posted. Similarly, having a public API with spelling mistakes can be a bit embarrassing, especially if people start using it and you cannot change it afterwards.