Wintertree Software Inc.

WSpell ActiveX Spelling Checker

Home Site index Contact us Catalog Shopping Cart Products Support Search

You are here: Home > Support > WSpell > Explanation of Mixed Digits and Mixed Case properties


Explanation of MixedDigits and MixedCase properties

This topic contains an explanation of how the IgnoreMixedCaseWords, IgnoreWordsWithDigits, CatchMixedCaseWords, and CatchWordsWithDigits properties operate.

When WSpell engine checks spelling, it performs the following steps for each word:

  1. It determines if the word matches the criteria for any enabled Ignore properties, and if so, it skips the word and proceeds to the next word without performing the next step.

  2. It determines if the word matches the criteria for any enabled Catch properties, and if so, it reports the word by raising an event such as MisspelledWordEvent, MixedCaseWord, or WordWithDigits.

The two steps above are performed in the order listed. Thus, a word that has been ignored is essentially filtered out, so no further tests (including spelling) are performed on it. For this reason, enabling both properties IgnoreMixedCaseWords and CatchMixedCaseWords is pointless. A word containing mixed case will be filtered out (because IgnoreMixedCaseWords is enabled), and will therefore never be reported as containing mixed case. "Ignore" properties take precedence over similarly named "Catch" properties.

The tests performed in Step 2 above are independent of each other. The tests for doubled words, mixed-case words, or words containing digits can all be enabled and disabled independently by enabling and disabling the corresponding Catch properties. All tests indicated by any enabled Catch properties are carried out, even if one or more of the other tests proves positive. Thus, WSpell may detect several conditions (problems) with a single word: The word may be misspelled, doubled, contain mixed case, and contain mixed digits all at once. Several events may be fired for the same word.

The presence of a word in a dictionary affects only its spelling. If a word exists in a dictionary with the default "Ignore" action, WSpell will not report it as misspelled. However, if the word matches the criteria for a test indicated by one of the enabled Catch properties, the word will still be reported even if it exists in a dictionary. For example, assume the CatchMixedCaseWords property is True, and that the word "PrintScreen" does not exist in any open dictionary. WSpell will fire both the MisspelledWordEvent and MixedCaseWord events for "PrintScreen". If "PrintScreen" is then added to an open dictionary, WSpell will still fire the MixedCaseWord event when it encounters "PrintScreen" (but it will not fire MisspelledWordEvent). Adding the word to a dictionary does not change the fact that it contains mixed case, and because CatchMixedCaseWords is enabled, WSpell will still report to your application that the word contains mixed case.

The same situation exists when "Ignore All" is selected as the disposition for a reported word. Selecting "Ignore All" for a reported word adds the word to a temporary internal dictionary, which prevents it from being reported as misspelled (i.e., prevents WSpell from firing the MisspelledWordEvent event for the word). However, as we have seen, adding a word to a dictionary (including a temporary dictionary) does not alter the fact that the word contains mixed case, so selecting "Ignore All" does not prevent WSpell from subsequently firing the MixedCaseWord event for that word.

Note that all of the above is true for the CatchWordsWithDigits property as well, when a word contains embedded digits, such as "Win2000".

You might consider disabling (setting to False) the CatchMixedCaseWords or CatchWordsWithDigits properties. As stated above, these properties cause WSpell to perform separate, special tests against each word, and to report the results of those tests through events. But unless you have some specific need to know if a word contains mixed case or embedded digits, the tests may be superfluous. Even if these two Catch properties are disabled, words such as "PrintScreen" or "Win2000" will still be reported as misspelled if they are not contained within an open dictionary. Presumably if they are contained in a dictionary, the intention is that they are correct and should not be reported for any reason. Case errors such as "TUesday" and missing-space errors such as "June5" will still be reported as misspellings (unless "TUesday" and "June5" happen to exist in an open dictionary).


Home Site index Contact us Catalog Shopping Cart Products Support Search


Copyright © 2015 Wintertree Software Inc.