mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 06:36:56 +07:00
IJPL-155874 make SpellCheckingInspection dumb aware
GitOrigin-RevId: 629e15e2feb514e36a605e5478d8627b2828f502
This commit is contained in:
committed by
intellij-monorepo-bot
parent
14c1fea329
commit
0c64030e25
@@ -24,7 +24,7 @@
|
||||
<localInspection shortName="SpellCheckingInspection" bundle="messages.SpellCheckerBundle"
|
||||
key="spellchecking.inspection.name" groupKey="proofread" enabledByDefault="true" level="TYPO"
|
||||
language=""
|
||||
implementationClass="com.intellij.spellchecker.inspections.SpellCheckingInspection"/>
|
||||
implementationClass="com.intellij.spellchecker.inspections.SpellCheckingInspection" dumbAware="true"/>
|
||||
|
||||
<nameSuggestionProvider id="DictionarySuggestionProvider" implementation="com.intellij.spellchecker.quickfixes.DictionarySuggestionProvider" order="first"/>
|
||||
<severitiesProvider implementation="com.intellij.spellchecker.SpellCheckerSeveritiesProvider"/>
|
||||
|
||||
@@ -9,6 +9,8 @@ import com.intellij.lang.LanguageNamesValidation;
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
import com.intellij.lang.refactoring.NamesValidator;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.psi.PsiElement;
|
||||
@@ -29,7 +31,7 @@ import java.util.Set;
|
||||
import static com.intellij.codeInspection.options.OptPane.checkbox;
|
||||
import static com.intellij.codeInspection.options.OptPane.pane;
|
||||
|
||||
public final class SpellCheckingInspection extends LocalInspectionTool {
|
||||
public final class SpellCheckingInspection extends LocalInspectionTool implements DumbAware {
|
||||
public static final String SPELL_CHECKING_INSPECTION_TOOL_NAME = "SpellCheckingInspection";
|
||||
|
||||
@Override
|
||||
@@ -45,8 +47,9 @@ public final class SpellCheckingInspection extends LocalInspectionTool {
|
||||
}
|
||||
|
||||
private static SpellcheckingStrategy getSpellcheckingStrategy(@NotNull PsiElement element, @NotNull Language language) {
|
||||
DumbService dumbService = DumbService.getInstance(element.getProject());
|
||||
for (SpellcheckingStrategy strategy : LanguageSpellchecking.INSTANCE.allForLanguage(language)) {
|
||||
if (strategy.isMyContext(element)) {
|
||||
if (dumbService.isUsableInCurrentContext(strategy) && strategy.isMyContext(element)) {
|
||||
return strategy;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.intellij.lang.ParserDefinition;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.fileTypes.impl.CustomSyntaxTableFileType;
|
||||
import com.intellij.openapi.project.PossiblyDumbAware;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
|
||||
@@ -18,7 +19,7 @@ import com.intellij.spellchecker.DictionaryLayer;
|
||||
import com.intellij.spellchecker.DictionaryLayersProvider;
|
||||
import com.intellij.spellchecker.inspections.PlainTextSplitter;
|
||||
import com.intellij.spellchecker.inspections.SpellCheckingInspection;
|
||||
import com.intellij.spellchecker.quickfixes.*;
|
||||
import com.intellij.spellchecker.quickfixes.SpellCheckerQuickFixFactory;
|
||||
import com.intellij.spellchecker.settings.SpellCheckerSettings;
|
||||
import com.intellij.util.KeyedLazyInstance;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -32,8 +33,10 @@ import java.util.Set;
|
||||
* <p>
|
||||
* Register via extension point {@code com.intellij.spellchecker.support}
|
||||
* and override {@link #getTokenizer(PsiElement)} to skip/handle specific elements.
|
||||
* <p>
|
||||
* Mark your strategy as {@link com.intellij.openapi.project.DumbAware} if it does not need indexes to perform
|
||||
*/
|
||||
public class SpellcheckingStrategy {
|
||||
public class SpellcheckingStrategy implements PossiblyDumbAware {
|
||||
protected final Tokenizer<PsiComment> myCommentTokenizer = new CommentTokenizer();
|
||||
|
||||
public static final ExtensionPointName<KeyedLazyInstance<SpellcheckingStrategy>> EP_NAME =
|
||||
|
||||
Reference in New Issue
Block a user