diff --git a/plugins/spellchecker/src/com/intellij/spellchecker/inspections/SpellCheckingInspection.java b/plugins/spellchecker/src/com/intellij/spellchecker/inspections/SpellCheckingInspection.java index 2f743b54dac0..5c9b047c8e48 100644 --- a/plugins/spellchecker/src/com/intellij/spellchecker/inspections/SpellCheckingInspection.java +++ b/plugins/spellchecker/src/com/intellij/spellchecker/inspections/SpellCheckingInspection.java @@ -88,7 +88,7 @@ public class SpellCheckingInspection extends LocalInspectionTool { private static final Map factories = new HashMap(); - private static void ensureFactoriesAreLoaded() { + public static void ensureFactoriesAreLoaded() { synchronized (factories) { if (!factories.isEmpty()) return; final SpellcheckingStrategy[] spellcheckingStrategies = Extensions.getExtensions(SpellcheckingStrategy.EP_NAME); @@ -146,11 +146,8 @@ public class SpellCheckingInspection extends LocalInspectionTool { } } - final SpellcheckingStrategy factoryByLanguage = getFactoryByLanguage(language); - final Tokenizer tokenizer = factoryByLanguage.getTokenizer(element); - @SuppressWarnings({"unchecked"}) - final Token[] tokens = tokenizer.tokenize(element); + final Token[] tokens = tokenize(element, language); if (tokens == null) return; Set alreadyChecked = new THashSet(); @@ -161,6 +158,19 @@ public class SpellCheckingInspection extends LocalInspectionTool { }; } + /** + * Splits element text in tokens according to spell checker strategy of given language + * @param element Psi element + * @param language Usually element.getLanguage() + * @return tokens array + */ + @Nullable + public static Token[] tokenize(@NotNull final PsiElement element, @NotNull final Language language) { + final SpellcheckingStrategy factoryByLanguage = getFactoryByLanguage(language); + final Tokenizer tokenizer = factoryByLanguage.getTokenizer(element); + return tokenizer.tokenize(element); + } + private static void inspect(Token token, ProblemsHolder holder, boolean isOnTheFly,@NotNull Set alreadyChecked, @NotNull SpellCheckerManager manager, NamesValidator... validators) { List areaList = token.getAreas(); @@ -253,7 +263,7 @@ public class SpellCheckingInspection extends LocalInspectionTool { return validators; } - private static boolean isKeyword(NamesValidator[] validators, PsiElement element, String word) { + public static boolean isKeyword(NamesValidator[] validators, PsiElement element, String word) { if (validators == null) { return false; }