diff options
author | László Németh <nemeth@numbertext.org> | 2022-12-30 10:26:07 +0100 |
---|---|---|
committer | László Németh <nemeth@numbertext.org> | 2022-12-30 11:03:39 +0000 |
commit | 57d79744c77eef96b4c2bd3b16e0a04317ffcf9e (patch) | |
tree | 7945482864b5be38eb2b88ba2c3fd38a1c21e293 /linguistic/workben/sprophelp.cxx | |
parent | b22bbfa25ab1f0b9cfa1dedc85b8f9874f0a5e5b (diff) |
tdf#136306 offapi linguistic: add options to disable rule-based compounding
Add two new spell checking options to disable rule-based closed
and hyphenated compound word recognition with Hunspell dictionaries:
com::sun::star::linguistic2::XLinguProperties::IsSpellClosedCompound
com::sun::star::linguistic2::XLinguProperties::IsSpellHyphenatedCompound
For professional proofreaders, it can be more important to avoid
of the mistakes of the rule-based compound word recognition, than
to speed up proofreading. Disabling the following two new options
will report all rule-based closed compound words (default in
Dutch, German, Hungarian etc. dictionaries) and rule-based
hyphenated compound words (all languages with BREAK usage in
their Hunspell dictionaries):
- "Accept possible closed compound words"
- "Accept possible hyphenated compound words"
For example, disabling the second one, dictionary word "scot-free"
will be still correct word in English spell checking, but not
the previously accepted compound "arbitrary-word-with-hyphen".
Note: the second option works with the update to Hunspell 1.7.2.
Change-Id: Id879610927d5e8269fda5ad207c1c2fe1f57a0b6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144875
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'linguistic/workben/sprophelp.cxx')
-rw-r--r-- | linguistic/workben/sprophelp.cxx | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/linguistic/workben/sprophelp.cxx b/linguistic/workben/sprophelp.cxx index 41542fec155f..9da626319a72 100644 --- a/linguistic/workben/sprophelp.cxx +++ b/linguistic/workben/sprophelp.cxx @@ -167,7 +167,9 @@ static const char *aSP[] = UPN_IS_USE_DICTIONARY_LIST, UPN_IS_SPELL_UPPER_CASE, UPN_IS_SPELL_WITH_DIGITS, - UPN_IS_SPELL_CAPITALIZATION + UPN_IS_SPELL_CAPITALIZATION, + UPN_IS_SPELL_CLOSED_COMPOUND, + UPN_IS_SPELL_HYPHENATED_COMPOUND }; @@ -216,6 +218,16 @@ PropertyHelper_Spell::PropertyHelper_Spell( pbVal = &bIsSpellCapitalization; pbResVal = &bResIsSpellCapitalization; } + else if (OUString( UPN_IS_SPELL_CLOSED_COMPOUND ) == pPropName[i]) + { + pbVal = &bIsSpellClosedCompound; + pbResVal = &bResIsSpellClosedCompound; + } + else if (OUString( UPN_IS_SPELL_HYPHENATED_COMPOUND ) == pPropName[i]) + { + pbVal = &bIsSpellHyphenatedCompound; + pbResVal = &bResIsSpellHyphenatedCompound; + } if (pbVal && pbResVal) { @@ -240,6 +252,8 @@ void PropertyHelper_Spell::SetDefault() bResIsSpellUpperCase = bIsSpellUpperCase = sal_False; bResIsSpellWithDigits = bIsSpellWithDigits = sal_False; bResIsSpellCapitalization = bIsSpellCapitalization = sal_True; + bResIsSpellClosedCompound = bIsSpellClosedCompound = sal_True; + bResIsSpellHyphenatedCompound = bIsSpellHyphenatedCompound = sal_True; } @@ -296,6 +310,21 @@ void SAL_CALL bSWWA = !bSCWA; // sal_True->sal_False change? break; } + case UPH_IS_SPELL_CLOSED_COMPOUND : + { + pbVal = &bIsSpellClosedCompound; + bSCWA = sal_False == *pbVal; // sal_False->sal_True change? + bSWWA = !bSCWA; // sal_True->sal_False change? + break; + } + case UPH_IS_SPELL_HYPHENATED_COMPOUND : + { + pbVal = &bIsSpellHyphenatedCompound; + bSCWA = sal_False == *pbVal; // sal_False->sal_True change? + bSWWA = !bSCWA; // sal_True->sal_False change? + break; + } + default: OSL_FAIL( "unknown property" ); } @@ -325,6 +354,8 @@ void PropertyHelper_Spell::SetTmpPropVals( const PropertyValues &rPropVals ) bResIsSpellUpperCase = bIsSpellUpperCase; bResIsSpellWithDigits = bIsSpellWithDigits; bResIsSpellCapitalization = bIsSpellCapitalization; + bResIsSpellClosedCompound = bIsSpellClosedCompound; + bResIsSpellHyphenatedCompound = bIsSpellHyphenatedCompound; sal_Int32 nLen = rPropVals.getLength(); if (nLen) @@ -341,6 +372,8 @@ void PropertyHelper_Spell::SetTmpPropVals( const PropertyValues &rPropVals ) case UPH_IS_SPELL_UPPER_CASE : pbResVal = &bResIsSpellUpperCase; break; case UPH_IS_SPELL_WITH_DIGITS : pbResVal = &bResIsSpellWithDigits; break; case UPH_IS_SPELL_CAPITALIZATION : pbResVal = &bResIsSpellCapitalization; break; + case UPH_IS_SPELL_CLOSED_COMPOUND : pbResVal = &bResIsSpellClosedCompound; break; + case UPH_IS_SPELL_HYPHENATED_COMPOUND : pbResVal = &bResIsSpellHyphenatedCompound; break; default: OSL_FAIL( "unknown property" ); } |