Friday, May 11, 2012

Spell Checking in LabVIEW

Did you know that LabVIEW has a spell checker?  Well, sort of.  It's the 'Spell Check' test of the VI Analyzer Toolkit.  The VI Analyzer Toolkit is a LabVIEW toolkit that you can either purchase separately, or is included as part of the NI Developer Suite.

The Spell Check test will check the spelling of words it finds in your VI against three different dictionaries:  (1) standard English words, (2) engineering and scientific technical terms, and (3) custom words added by the user.  The following configuration options can be used to customize which parts of your VI are checked, and what kind of words are checked (the screenshot shows the default selected options for the test):

But enough of the sales pitch (we've got other people around here for that) are some of the reasons our current spell checking solution is less than ideal:
  • Lack of integration - If you want to spell check your code, currently you have to run a separate tool (VI Analyzer) in order to see the results of the misspellings, as opposed to the standard way of just getting a red wavy underline of misspelled words as you type.  Also, to add a word to the custom dictionary, you have to do that through the VI Analyzer as well, as opposed to simply being able to right-click a word and add it to the custom dictionary.  Although I suppose it wouldn't be too tough to write a Quick Drop Keyboard Shortcut or a JKIRCF plugin to enable a UI gesture to do this as you sift through your VI Analyzer results.
  • English only - The VI Analyzer Toolkit is not localized, so we only provide English dictionaries.
  • Maintenance difficulty - Ok, this one is kind of selfish, but it's up to me, as the VI Analyzer Toolkit owner, to keep track of LabVIEW features that add different text fields to a VI so I can add the scripting code to the Spell Check test to get the text out of those fields.  In fact, I discovered recently a feature that was added two releases ago that I have yet to add Spell Check support for... :\
Despite these deficiencies, I've spoken to multiple developers who use the Spell Check test regularly because it's the best tool they have for identifying and fixing spelling mistakes in their VIs.  So with this blog post, I have a few questions to ask:
  1. Do you use the VI Analyzer Spell Check test?  If so, how has the experience been?
  2. Do you think it's a feature that would be worth significant investment for LabVIEW R&D to integrate better into the LabVIEW editor?
  3. Are there any words you've found flagged by the Spell Check test that you think should be added to our standard dictionary or our technical dictionary?
Even if you've never used the Spell Check test, or even thought about spell checking in LabVIEW before, your feedback is welcome!


  1. Nice "other people" link :D

  2. Do you use the VI Analyzer Spell Check test?
    No. My spell checker is between my ears.

    Do you think it's a feature that would be worth significant investment for LabVIEW R&D

    Gosh, no. Like "Diagram Cleanup", this is an solution in search of a problem.
    Spend your R&D money on fixing the problems with LabVIEW (I've found 3 confirmed bugs so far this year, that make charts useless in my app), not on this fluff.

  3. I think a live spell checker would be a big improvement. This seems like an ubiquitous feature in most modern applications these days. Heck, I just used the one in Chrome to spell check 'ubiquitous' in this post!
    Also, I think the dictionary you use in VI Analyzer needs some improvement. I got this message today:

    This free label contains the misspelled word "incremented".

    Really? And don't try telling me that is not a common word in the LabVIEW world...

    1. Thanks for the feedback, John. As I mention in the blog post, 'lack of integration' is the biggest problem we have with spell checking in LabVIEW today.

      In the meantime, I'll make sure to get 'incremented' added to the VI Analyzer spell check list. :)

  4. I did not know there was a method for checking spelling in LV and i will start using it.

    I would love to see an integrated spell checker in LV. I know for me personally it would encourage better documentation of my code. Currently, I tend to type into MS Word and then copy/paste into LV. This means i need to make the note long enough to make it worth the copy/paste operation, or simple enough that i know i have not screwed it up.

  5. This would be great both in IDE and Run Time.

    Kudos this idea: