Class HunspellRule
- java.lang.Object
-
- org.languagetool.rules.Rule
-
- org.languagetool.rules.spelling.SpellingCheckRule
-
- org.languagetool.rules.spelling.hunspell.HunspellRule
-
- Direct Known Subclasses:
CompoundAwareHunspellRule
,HunspellNoSuggestionRule
public class HunspellRule extends SpellingCheckRule
A hunspell-based spellchecking-rule. The default dictionary is set to the first country variant on the list - so the order in the Language class declaration is important!
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.concurrent.ConcurrentLinkedQueue<java.lang.String>
activeChecks
protected static java.lang.String
FILE_EXTENSION
protected Hunspell.Dictionary
hunspellDict
private boolean
monitorRules
protected boolean
needsInit
private static java.lang.String
NON_ALPHABETIC
protected java.util.regex.Pattern
nonWordPattern
static java.lang.String
RULE_ID
private boolean
runningExperiment
protected SuggestionsOrderer
suggestionsOrderer
private UserConfig
userConfig
private static java.lang.String[]
WHITESPACE_ARRAY
-
Fields inherited from class org.languagetool.rules.spelling.SpellingCheckRule
ignoreWordsWithLength, language, languageModel, LANGUAGETOOL, LANGUAGETOOLER, wordListLoader
-
-
Constructor Summary
Constructors Constructor Description HunspellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig)
HunspellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig, java.util.List<Language> altLanguages)
HunspellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig, java.util.List<Language> altLanguages, LanguageModel languageModel)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addIgnoreWords()
private java.lang.String
cutOffDot(java.lang.String s)
private void
fileCopy(java.io.InputStream in, java.io.File targetFile)
static java.util.Queue<java.lang.String>
getActiveChecks()
java.lang.String
getDescription()
A short description of the error this rule can detect, usually in the language of the text that is checked.protected @NotNull java.lang.String
getDictFilenameInResources(java.lang.String langCountry)
private java.lang.String
getDictionaryPath(java.lang.String dicName, java.lang.String originalPath)
java.lang.String
getId()
A string used to identify the rule in e.g.protected java.lang.String
getSentenceTextWithoutUrlsAndImmunizedTokens(AnalyzedSentence sentence)
java.util.List<java.lang.String>
getSuggestions(java.lang.String word)
protected void
init()
protected boolean
isAcceptedWordFromLanguage(Language language, java.lang.String word)
Used in combination withacceptedInAlternativeLanguage
to surpress spelling errors for words from a foreign languageboolean
isMisspelled(java.lang.String word)
protected boolean
isQuotedCompound(AnalyzedSentence analyzedSentence, int idx, java.lang.String token)
Is the given token part of a hyphenated compound preceded by a quoted token (e.g., „Spiegel“-Magazin) and should be treated as an ordinary hyphenated compound (e.g., „Spiegel-Magazin“)RuleMatch[]
match(AnalyzedSentence sentence)
Check whether the given sentence matches this error rule, i.e.protected java.util.List<java.lang.String>
sortSuggestionByQuality(java.lang.String misspelling, java.util.List<java.lang.String> suggestions)
protected java.lang.String[]
tokenizeText(java.lang.String sentence)
-
Methods inherited from class org.languagetool.rules.spelling.SpellingCheckRule
acceptedInAlternativeLanguage, acceptPhrases, addIgnoreTokens, addIgnoreWords, addProhibitedWords, addSuggestionsToRuleMatch, createWrongSplitMatch, expandLine, filterDupes, filterSuggestions, getAdditionalProhibitFileNames, getAdditionalSpellingFileNames, getAdditionalSuggestions, getAdditionalTopSuggestions, getAlternativeLangSpellingRules, getAntiPatterns, getIgnoreFileName, getLanguageVariantSpellingFileName, getProhibitFileName, getSpellingFileName, ignoreToken, ignoreWord, ignoreWord, isDictionaryBasedSpellingRule, isEMail, isProhibited, isUrl, reorderSuggestions, setConsiderIgnoreWords, setConvertsCase, startsWithIgnoredWord
-
Methods inherited from class org.languagetool.rules.Rule
addExamplePair, estimateContextForSureMatch, getCategory, getConfigureText, getCorrectExamples, getDefaultValue, getErrorTriggeringExamples, getIncorrectExamples, getLocQualityIssueType, getMaxConfigurableValue, getMinConfigurableValue, getSentenceWithImmunization, getUrl, hasConfigurableValue, isDefaultOff, isDefaultTempOff, isOfficeDefaultOff, isOfficeDefaultOn, makeAntiPatterns, setCategory, setCorrectExamples, setDefaultOff, setDefaultOn, setDefaultTempOff, setErrorTriggeringExamples, setIncorrectExamples, setLocQualityIssueType, setOfficeDefaultOff, setOfficeDefaultOn, setUrl, supportsLanguage, toRuleMatchArray, useInOffice
-
-
-
-
Field Detail
-
RULE_ID
public static final java.lang.String RULE_ID
- See Also:
- Constant Field Values
-
FILE_EXTENSION
protected static final java.lang.String FILE_EXTENSION
- See Also:
- Constant Field Values
-
suggestionsOrderer
protected final SuggestionsOrderer suggestionsOrderer
-
needsInit
protected boolean needsInit
-
hunspellDict
protected Hunspell.Dictionary hunspellDict
-
activeChecks
private static final java.util.concurrent.ConcurrentLinkedQueue<java.lang.String> activeChecks
-
NON_ALPHABETIC
private static final java.lang.String NON_ALPHABETIC
- See Also:
- Constant Field Values
-
monitorRules
private final boolean monitorRules
-
runningExperiment
private final boolean runningExperiment
-
WHITESPACE_ARRAY
private static final java.lang.String[] WHITESPACE_ARRAY
-
nonWordPattern
protected java.util.regex.Pattern nonWordPattern
-
userConfig
private final UserConfig userConfig
-
-
Constructor Detail
-
HunspellRule
public HunspellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig)
-
HunspellRule
public HunspellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig, java.util.List<Language> altLanguages)
- Since:
- 4.3
-
HunspellRule
public HunspellRule(java.util.ResourceBundle messages, Language language, UserConfig userConfig, java.util.List<Language> altLanguages, LanguageModel languageModel)
-
-
Method Detail
-
getActiveChecks
public static java.util.Queue<java.lang.String> getActiveChecks()
-
getId
public java.lang.String getId()
Description copied from class:Rule
A string used to identify the rule in e.g. configuration files. This string is supposed to be unique and to stay the same in all upcoming versions of LanguageTool. It's supposed to contain only the charactersA-Z
and the underscore.- Specified by:
getId
in classSpellingCheckRule
-
getDescription
public java.lang.String getDescription()
Description copied from class:Rule
A short description of the error this rule can detect, usually in the language of the text that is checked.- Specified by:
getDescription
in classSpellingCheckRule
-
isQuotedCompound
protected boolean isQuotedCompound(AnalyzedSentence analyzedSentence, int idx, java.lang.String token)
Is the given token part of a hyphenated compound preceded by a quoted token (e.g., „Spiegel“-Magazin) and should be treated as an ordinary hyphenated compound (e.g., „Spiegel-Magazin“)
-
match
public RuleMatch[] match(AnalyzedSentence sentence) throws java.io.IOException
Description copied from class:Rule
Check whether the given sentence matches this error rule, i.e. whether it contains the error detected by this rule. Note that the order in which this method is called is not always guaranteed, i.e. the sentence order in the text may be different than the order in which you get the sentences (this may be the case when LanguageTool is used as a LibreOffice/OpenOffice add-on, for example).- Specified by:
match
in classSpellingCheckRule
- Parameters:
sentence
- a pre-analyzed sentence- Returns:
- an array of
RuleMatch
objects - Throws:
java.io.IOException
-
cutOffDot
private java.lang.String cutOffDot(java.lang.String s)
-
isMisspelled
@Experimental public boolean isMisspelled(java.lang.String word)
- Specified by:
isMisspelled
in classSpellingCheckRule
- Since:
- public since 4.1
-
getSuggestions
public java.util.List<java.lang.String> getSuggestions(java.lang.String word) throws java.io.IOException
- Throws:
java.io.IOException
-
sortSuggestionByQuality
protected java.util.List<java.lang.String> sortSuggestionByQuality(java.lang.String misspelling, java.util.List<java.lang.String> suggestions)
-
tokenizeText
protected java.lang.String[] tokenizeText(java.lang.String sentence)
-
getSentenceTextWithoutUrlsAndImmunizedTokens
protected java.lang.String getSentenceTextWithoutUrlsAndImmunizedTokens(AnalyzedSentence sentence)
-
init
protected void init() throws java.io.IOException
- Overrides:
init
in classSpellingCheckRule
- Throws:
java.io.IOException
-
getDictFilenameInResources
@NotNull protected @NotNull java.lang.String getDictFilenameInResources(java.lang.String langCountry)
-
addIgnoreWords
private void addIgnoreWords() throws java.io.IOException
- Throws:
java.io.IOException
-
getDictionaryPath
private java.lang.String getDictionaryPath(java.lang.String dicName, java.lang.String originalPath) throws java.io.IOException
- Throws:
java.io.IOException
-
fileCopy
private void fileCopy(java.io.InputStream in, java.io.File targetFile) throws java.io.IOException
- Throws:
java.io.IOException
-
isAcceptedWordFromLanguage
protected boolean isAcceptedWordFromLanguage(Language language, java.lang.String word)
Used in combination withacceptedInAlternativeLanguage
to surpress spelling errors for words from a foreign language- Parameters:
language
-word
-- Returns:
- true if the
word
fromlanguage
can be considered as correctly spelled - Since:
- 4.6
-
-