Integrated spell checking with ReSpeller in ReSharper and Rider

Maarten Balliauw

The latest builds of ReSharper 2018.2 EAP and Rider 2018.2 EAP come with the ReSpeller extension, providing spell-checking functionality out of the box. Just like with code analysis, ReSpeller scans for spelling mistakes and typos in identifiers, comments, string literals and more, and provides quick-fixes to resolve the problem. Let’s have a look!

Spell-checking in the editor

ReSpeller will look for spelling mistakes in identifiers, comments, and string literals. When it detects a potential spelling mistake or a typo, it will let us know in the same way ReSharper and Rider display other code suggestions:

Typo detected in comment

We can then invoke the Alt+Enter menu where ReSpeller gives us several options to fix our mistake: we can either fix our typo or add this word to ReSpeller’s dictionary.

Quick-fix for spelling mistakes and typos

When selecting Replace with…, ReSpeller provides us with several suggestions. By default, the best match will be selected (“parameters” in this example), but other versions are provided as well. Perhaps we meant to use the singular “parameter”? And yes, “par meters” exist – they measure Photosynthetically Active Radiation in case you wanted to know.

Fix typo using suggestions from ReSpeller dictionary

What’s nice about ReSpeller is that it automatically invokes the Rename refactoring when fixing a typo in an identifier. This ensures that our spelling correction preserves consistency across our code base. Note that in the Rename dialog, we can press Ctrl+Space to invoke code completion – or in this case, word completion.

Rename refactoring to fix a spelling mistake in an identifier

Now, where do these suggestions come from…

ReSpeller dictionaries

By default, Rider and ReSharper come with a built-in dictionary for English (United States). It uses a dictionary based on Hunspell, which means we can install other languages as well. Being a native Dutch speaker (well, Flemish), I’ve downloaded the corresponding .aff and .dic files and imported it in ReSharper’s settings:

Add Hunspell dictionary to ReSpeller

Et voila! (yes, you can add French, too, and many more languages) We now have spell checking for Dutch:

Spell checking for other languages in ReSharper and Rider

Remember that the quick-fix on a spelling mistake also showed the option Add to user dictionary? It allows us to add a custom word to ReSpeller’s dictionary. And just like with settings layers, we can choose to add that word to a dictionary on our own machine or share it with the entire team.

Add to user dictionary

Configuring ReSpeller code analysis

By default, ReSpeller is enabled in many of ReSharper’s supported languages. We can enable/disable individual inspections and change severity by searching for “typo” in the settings (under Code Inspection | Inspection Severity).

Configure ReSpeller inspection severity

There are many cases where spell checking is important or even critical. ReSharper and Rider now help detect and resolve them.

Give ReSharper 2018.2 EAP a try! Or grab the latest Rider 2018.2 EAP! We’d love to hear your feedback!

Comments below can no longer be edited.

39 Responses to Integrated spell checking with ReSpeller in ReSharper and Rider

  1. Bradley says:

    July 10, 2018

    Any chance we can get custom dictionary “layers” with this too? I’d like to be able to have project / solution specific dictionaries for domain specific words, that won’t affect unrelated projects.

    • Maarten Balliauw says:

      July 10, 2018

      You can add words to e.g. the team-shared layer.

  2. Dew Drop - July 11, 2018 (#2763) - Morning Dew says:

    July 11, 2018

    […] Integrated spell checking with ReSpeller in ReSharper and Rider (Maarten Balliauw) […]

  3. Jeff Odell says:

    July 11, 2018

    Would you consider excluding strings that are ALLCAPS?

  4. Greg says:

    July 13, 2018

    Does this replace the purchased version of ReSpeller Pro?

  5. mdeschaepmeester says:

    July 17, 2018

    Mooi, dat verdient inderdaad pannenkoeken!

    • Maarten Balliauw says:

      July 17, 2018

      Haha bedankt 🙂 (Thanks! I will enjoy them.)

  6. Bruno Juchli says:

    August 22, 2018

    What’s the simplest way to deactivate ReSpeller altogether?

    • Maarten Balliauw says:

      August 22, 2018

      There is no “one click” way, however it’s not too difficult. From Rider’s settings, find Editor | Inspections. Then under the languages of choice (e.g. C#), search for "spell" or "typo" and disable the inspections.

      Then when saving settings, pick the dropdown and pick This Computer if you want these disabled in all solutions you open.

  7. Stephen Kennedy says:

    August 22, 2018

    I added the en-GB dictionary and saved the setting to my team’s layer. The path to the dictionary is saved as a full path including drive letter. This necessitates all team members to have installed the dictionary into the same folder on the same drive. I want to commit the dictionary to source control and have Resharper look for it relative to my team settings file location. Is that possible? I tried manually editing the settings file but it didn’t work.

  8. Stephen Kennedy says:

    August 22, 2018

    Thanks Maarten. Is there a ticket for this planned improvement I can monitor, or am I safe to assume it will come in the next release?

  9. Jon Ward says:

    August 22, 2018

    I’d also prefer to disable ReSpeller until you can offer a better way of managing languages. Selecting languages should be handled entirely within the configuration, not requiring a dictionary download outside of the tool.

    • Maarten Balliauw says:

      August 22, 2018

      Would you mind elaborating a bit in a ticket? https://youtrack.jetbrains.com/issues/RSRP#newIssue
      (let me know the ticket URL once you have it, will then send it over to the right folks)

      • Jon Ward says:

        August 23, 2018

        Thanks Maarten, I’ve done that: https://youtrack.jetbrains.com/issue/RSRP-471227

        Just to be clear, I’m not saying ReSpeller is a bad feature and I do love ReSharper… it’s just that it could support languages with much less messing about and until it does that I’d rather turn it off.

        Thanks for your reply.

        • Maarten Balliauw says:

          August 23, 2018

          Thanks! Updated the issue so the right folks see it. Much appreciate you creating that ticket!

          • Jon Ward says:

            August 23, 2018

            You’re welcome, and thanks for your response!

  10. Logan Ratner says:

    August 27, 2018

    One irritant is that ReSpeller doesn’t understand doxygen commands inside a comment block. If I type:

    /// \brief a method
    ///
    /// \return true if methodical
    ///

    Then it reports spelling errors ‘ief’ and ‘eturn’ as it thinks \b and \r are special characters.

  11. John Staveley (@johnstaveley) says:

    September 6, 2018

    Every single word in Visual Studio is marked as having a typo. Switching it off in settings does not work.

  12. What’s New in ReSharper C++ 2018.2 - ReSharper C++ BlogReSharper C++ Blog says:

    September 12, 2018

    […] By default, the spell-checker comes with a built-in dictionary for American English, so do not be surprised if ReSpeller complains about “colour” or “behaviour”. Dictionaries for other languages can be easily added too, since ReSharper C++ uses the standard hunspell dictionary format. For instructions on adding a new dictionary and more info about ReSpeller, see Integrated spell checking with ReSpeller in ReSharper and Rider. […]

  13. Alex Strickland says:

    September 13, 2018

    As above, I am not able to disable the spelling checker, it is not “ticked” and yet is still loaded. It is irritating me, too many marked typos in commented code (I’m sure any commented code should have been deleted and kept “clean” but you know how it is).

  14. Alex Strickland says:

    September 13, 2018

    My apologies – it was the Component One spell checker.

  15. Karl THURNHOFER says:

    January 15, 2019

    Forget the german Hunspell dictionaries from Wooorm website, they are not useable for a serious german spell checking. I recommend the german Hunspell dictionaries (de_DE-20071211.zip) from Björn Jacke that can be found at https://j3e.de/hunspell/

  16. Andrew Patrick says:

    February 6, 2019

    Is there a way to make it pick up words from existing Code Analysis (i.e. FxCop) custom dictionaries?

    I’ve just tried a preview of this on my codebase and Respeller is reporting all the words in my custom dictionary as being spelled wrong… hardly the ideal result, nor do I really want to maintain two dictionaries of custom words, one for CA and one for Respeller.

  17. Courtney says:

    February 15, 2019

    Downloaded the Australian dictionary from Wooorm website and added the .dic file – after doing that though Respeller shows every word is now a spelling mistake.
    Disabled.

  18. Guy Bailey says:

    February 18, 2019

    i hope they add the ability to disable ReSpeller. Until then, we will use a different code analysis tool.

    • Maarten Balliauw says:

      February 25, 2019

      There is no “one click” way, however it’s not too difficult. From Rider/ReSharper settings, this can be done from the inspections page. Then under the languages of choice (e.g. C#), search for "spell" or "typo" and disable the inspections.

  19. Bertus says:

    March 9, 2020

    Seems simple enough, but I don’t get it to work.

    I wanted to use real English instead of American.
    I added the .dic file from wooorm, disabled the bundled en-US, en refreshed the code inspection. I got thousands of spelling issues.

    I have suspended Resharper, restarted Visual Studio, nothing helps.

    What’s going on? I only need the .dic file, right? It is alright to be html, right?

    So why doesn’t it work? Bug?

    • Maarten Balliauw says:

      March 10, 2020

      Do you happen to have the URL to the .dic file so we can try this as well?

  20. Bertus says:

    March 9, 2020

    By the way, I already had the .aff file in the same directory as the .dic file, but it does not work anyway.

    I found that here:
    https://www.jetbrains.com/help/resharper/Spell_Checking.html

Subscribe

Subscribe to .NET Tools updates