ReSpeller: A Spell-Checking Plugin for ReSharper

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:

  • Programming languages: C#, VB.NET, JavaScript

  • 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:

Integration Features

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:

Conclusion

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.

ReSpeller is a plugin that can prevent these kinds of issues. It’s available in two editions: a free edition and a Pro edition with an expanded set of features (such as support for JavaScript, HTML, mixed-language files and different languages). If you’re interested, head over to Ethereal Code for more details. And stay tuned for more plugin overviews!

This entry was posted in News and Events and tagged , . Bookmark the permalink.

2 Responses to ReSpeller: A Spell-Checking Plugin for ReSharper

  1. Sven says:

    Definitely the best spell checker plugin for R# I used so far. It handles German words very well thanks to the Hunspell engine.

  2. Creepy Gnome says:

    This has potential but its missing some configuration options. Such as:

    - Ignore words in UPPERCASE
    - Ignore words that contain numbers
    - Ignore Internet and File address
    - Flag repeated words

    Also has bugs:
    -I set the minimum word length to check to 4 and 3 letter words are still being flagged as misspelled so that feature doesn’t work.
    -Its will say a word is misspelled when it isn’t and it offers the correct spelling which is spelled exactly the same as the word it says is wrong.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>