mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJPL-190645 Enable text-level spellchecking for Java, XML, HTML, Plain-Text and Markdown
Merge-request: IJ-MR-172291 Merged-by: Ilia Permiashkin <ilia.permiashkin@jetbrains.com> GitOrigin-RevId: 0a9a50d89d614c56123cf64fdeeaeac87ae6a041
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7373cc97bb
commit
c4e1473104
@@ -4,6 +4,7 @@ package com.intellij.spellchecker;
|
||||
import com.intellij.codeInspection.SuppressManager;
|
||||
import com.intellij.codeInspection.util.ChronoUtil;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiLiteralExpression;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
@@ -42,4 +43,9 @@ public final class JavaSpellcheckingStrategy extends SpellcheckingStrategy imple
|
||||
|
||||
return super.getTokenizer(element);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean useTextLevelSpellchecking() {
|
||||
return Registry.is("spellchecker.grazie.enabled");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,46 +1,46 @@
|
||||
**C**<TYPO descr="Typo: In word 'orrect'">orrect</TYPO>, **Pro**<TYPO descr="Typo: In word 'blem'">blem</TYPO>, **Pr**<TYPO descr="Typo: In word 'oblem'">oblem</TYPO>, **Co**<TYPO descr="Typo: In word 'rrect'">rrect</TYPO>
|
||||
**C**orrect, **Pro**blem, **Pr**oblem, **Co**rrect
|
||||
|
||||
bc5<TYPO descr="Typo: In word 'ebcd'">ebcd</TYPO>0_1a55_484d_<TYPO descr="Typo: In word 'aadc'">aadc</TYPO>_198<TYPO descr="Typo: In word 'faeb'">faeb</TYPO>50db0
|
||||
bc5ebcd0_1a55_484d_aadc_198faeb50db0
|
||||
|
||||
password: VxBFMd9YCKjq6<TYPO descr="Typo: In word 'PBFG'">PBFG</TYPO>54FIY3V
|
||||
password: VxBFMd9YCKjq6PBFG54FIY3V
|
||||
|
||||
<TYPO descr="Typo: In word 'Postgre'">Postgre</TYPO>SQL
|
||||
PostgreSQL
|
||||
|
||||
cherry-picked from <TYPO descr="Typo: In word 'cafebabe'">cafebabe</TYPO>3690498<TYPO descr="Typo: In word 'eecb'">eecb</TYPO>45<TYPO descr="Typo: In word 'dfedba'">dfedba</TYPO>4
|
||||
cherry-picked from cafebabe3690498eecb45dfedba4
|
||||
|
||||
-Xlint
|
||||
|
||||
Mindest- oder Regelstudienzeit,
|
||||
<TYPO descr="Typo: In word 'Eignungs'">Eignungs</TYPO>- und Sprachtests,
|
||||
<TYPO descr="Typo: In word 'Hochschul'">Hochschul</TYPO>- oder Fachhochschulreife,
|
||||
<TYPO descr="Typo: In word 'Ausbildungs'">Ausbildungs</TYPO>- oder Praxisaufstieg
|
||||
Eignungs- und Sprachtests,
|
||||
Hochschul- oder Fachhochschulreife,
|
||||
Ausbildungs- oder Praxisaufstieg
|
||||
|
||||
|
||||
/Users/Olga.<TYPO descr="Typo: In word 'Doroshko'">Doroshko</TYPO>/Library/Java
|
||||
/Users/Olga.Doroshko/Library/Java
|
||||
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MFwwDQYJKoZ<TYPO descr="Typo: In word 'Ihvc'">Ihvc</TYPO>NAQEBBQADSwAwSAJBALPwh7JEV7KNuZ0JGIoXz5XWv4bUkCMF
|
||||
HTZ8ZG50urBdSMBZmtW75AdKHv5qvXt5Q+cb6N3FOqOhPVQjBM5+iAMCAw<TYPO descr="Typo: In word 'EAAQ'">EAAQ</TYPO>==
|
||||
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALPwh7JEV7KNuZ0JGIoXz5XWv4bUkCMF
|
||||
HTZ8ZG50urBdSMBZmtW75AdKHv5qvXt5Q+cb6N3FOqOhPVQjBM5+iAMCAwEAAQ==
|
||||
-----END PUBLIC KEY-----
|
||||
|
||||
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
<TYPO descr="Typo: In word 'MIIB'">MIIB</TYPO>Og<TYPO descr="Typo: In word 'IBAAJBAL'">IBAAJBAL</TYPO>Pwh7JEV7KNuZ0JGIoXz5XWv4bUk<TYPO descr="Typo: In word 'CMFHTZ'">CMFHTZ</TYPO>8ZG50urBdSMBZmtW7
|
||||
5AdKHv5qvXt5Q+cb6N3FOqOhPVQjBM5+iAMCAw<TYPO descr="Typo: In word 'EAAQJAD'">EAAQJAD</TYPO>8dqv0gUVBbA6U62tuFD
|
||||
PNU7qxD9rN3aW2<TYPO descr="Typo: In word 'xldl'">xldl</TYPO>YV7XErHX8iWW+zA0M+aiOE+mOEot<TYPO descr="Typo: In word 'TYPF'">TYPF</TYPO>2+zMyW4mHkxNRj
|
||||
MIIBOgIBAAJBALPwh7JEV7KNuZ0JGIoXz5XWv4bUkCMFHTZ8ZG50urBdSMBZmtW7
|
||||
5AdKHv5qvXt5Q+cb6N3FOqOhPVQjBM5+iAMCAwEAAQJAD8dqv0gUVBbA6U62tuFD
|
||||
PNU7qxD9rN3aW2xldlYV7XErHX8iWW+zA0M+aiOE+mOEotTYPF2+zMyW4mHkxNRj
|
||||
cQIhAPO6KReZCUz3KgyJf88EO8z+2CkeRrbOkqU51daGS8VbAiEAuTPOQgAVe0WR
|
||||
bQ26FQ<TYPO descr="Typo: In word 'Wwyo'">Wwyo</TYPO>CR7u<TYPO descr="Typo: In word 'Eehh'">Eehh</TYPO>X<TYPO descr="Typo: In word 'Imzuv'">Imzuv</TYPO>YRehWpsCIQCn52h+1YdHgVzFy7rhTvU8r03<TYPO descr="Typo: In word 'Kgyj'">Kgyj</TYPO>D
|
||||
tzX0S0fNcPhUQQIgRF7<TYPO descr="Typo: In word 'dwimk'">dwimk</TYPO>Iv4iKU+BM3A<TYPO descr="Typo: In word 'Ybsvuhc'">Ybsvuhc</TYPO>MdvYId+yLaI<TYPO descr="Typo: In word 'Hytd'">Hytd</TYPO>PECIATh
|
||||
iIRn<TYPO descr="Typo: In word 'MZOGZ'">MZOGZ</TYPO>TqZZ2Ku9wz2F1vKln97vth3FwbO2qgn
|
||||
bQ26FQWwyoCR7uEehhXImzuvYRehWpsCIQCn52h+1YdHgVzFy7rhTvU8r03KgyjD
|
||||
tzX0S0fNcPhUQQIgRF7dwimkIv4iKU+BM3AYbsvuhcMdvYId+yLaIHytdPECIATh
|
||||
iIRnMZOGZTqZZ2Ku9wz2F1vKln97vth3FwbO2qgn
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
||||
|
||||
LqAgHd9T<TYPO descr="Typo: In word 'Fasf'">Fasf</TYPO>VYIgFxWHgoS1eq4xGvR+g<TYPO descr="Typo: In word 'SGZL'">SGZL</TYPO>0v8ZMk=
|
||||
1QkUKfW9<TYPO descr="Typo: In word 'XDLO'">XDLO</TYPO>+YxZwQbL1Vnx5rUThCJHeX8ClcT1X6DeY+g<TYPO descr="Typo: In word 'Qyukc'">Qyukc</TYPO>HizHkS+6HR0nTxmQWknFj6D9z/U8kdXsEA==
|
||||
LqAgHd9TFasfVYIgFxWHgoS1eq4xGvR+gSGZL0v8ZMk=
|
||||
1QkUKfW9XDLO+YxZwQbL1Vnx5rUThCJHeX8ClcT1X6DeY+gQyukcHizHkS+6HR0nTxmQWknFj6D9z/U8kdXsEA==
|
||||
|
||||
Random words:
|
||||
- RES<TYPO descr="Typo: In word 'Tful'">Tful</TYPO>
|
||||
- <TYPO descr="Typo: In word 'CAPM'">CAPM</TYPO>3
|
||||
- RESTful
|
||||
- CAPM3
|
||||
- iDRAC
|
||||
|
||||
dafür // u + Unicode Combining Diaeresis Mark
|
||||
|
||||
@@ -1 +1 @@
|
||||
<link href="<TYPO descr="Typo: In word 'amasons'">amasons</TYPO>.com"/>
|
||||
<link href="amasons.com"/>
|
||||
@@ -1,7 +1,7 @@
|
||||
/** Half width Katakana variants (FF00 - <TYPO descr="Typo: In word 'FFEF'">FFEF</TYPO>)
|
||||
/** Half width Katakana variants (FF00 - FFEF)
|
||||
* ワタシハジャバガスキデス。
|
||||
*/
|
||||
/** Full width ASCII variants (FF00 - <TYPO descr="Typo: In word 'FFEF'">FFEF</TYPO>)
|
||||
/** Full width ASCII variants (FF00 - FFEF)
|
||||
* I LOVE JAVA
|
||||
*/
|
||||
/** Hiragana (3040 - 309F)
|
||||
|
||||
+15
-7
@@ -2,6 +2,7 @@ package org.intellij.plugins.markdown.spellchecker;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.impl.source.tree.TreeUtil;
|
||||
import com.intellij.psi.tree.TokenSet;
|
||||
@@ -12,21 +13,28 @@ import org.intellij.plugins.markdown.lang.MarkdownTokenTypes;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
final class MarkdownSpellcheckingStrategy extends SpellcheckingStrategy implements DumbAware {
|
||||
public static final TokenSet NO_SPELLCHECKING_TYPES = TokenSet.create(MarkdownElementTypes.CODE_BLOCK,
|
||||
MarkdownElementTypes.CODE_FENCE,
|
||||
MarkdownElementTypes.CODE_SPAN,
|
||||
MarkdownElementTypes.LINK_DESTINATION);
|
||||
public static final TokenSet NO_SPELLCHECKING_TYPES = TokenSet.create(
|
||||
MarkdownElementTypes.CODE_BLOCK,
|
||||
MarkdownElementTypes.CODE_FENCE,
|
||||
MarkdownElementTypes.CODE_SPAN,
|
||||
MarkdownElementTypes.LINK_DESTINATION
|
||||
);
|
||||
|
||||
@Override
|
||||
public @NotNull Tokenizer getTokenizer(PsiElement element) {
|
||||
final ASTNode node = element.getNode();
|
||||
if (node == null || node.getElementType() != MarkdownTokenTypes.TEXT) {
|
||||
return SpellcheckingStrategy.EMPTY_TOKENIZER;
|
||||
return EMPTY_TOKENIZER;
|
||||
}
|
||||
if (TreeUtil.findParent(node, NO_SPELLCHECKING_TYPES) != null) {
|
||||
return SpellcheckingStrategy.EMPTY_TOKENIZER;
|
||||
return EMPTY_TOKENIZER;
|
||||
}
|
||||
|
||||
return SpellcheckingStrategy.TEXT_TOKENIZER;
|
||||
return TEXT_TOKENIZER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean useTextLevelSpellchecking() {
|
||||
return Registry.is("spellchecker.grazie.enabled");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,10 @@ import com.intellij.spellchecker.SpellCheckerManager;
|
||||
import com.intellij.spellchecker.grazie.diacritic.Diacritics;
|
||||
import com.intellij.spellchecker.inspections.SpellcheckingExtension.SpellCheckingResult;
|
||||
import com.intellij.spellchecker.inspections.SpellcheckingExtension.SpellingTypo;
|
||||
import com.intellij.spellchecker.tokenizer.*;
|
||||
import com.intellij.spellchecker.tokenizer.LanguageSpellchecking;
|
||||
import com.intellij.spellchecker.tokenizer.SpellcheckingStrategy;
|
||||
import com.intellij.spellchecker.tokenizer.SuppressibleSpellcheckingStrategy;
|
||||
import com.intellij.spellchecker.tokenizer.TokenConsumer;
|
||||
import com.intellij.spellchecker.util.SpellCheckerBundle;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.containers.CollectionFactory;
|
||||
@@ -94,6 +97,7 @@ public final class SpellCheckingInspection extends LocalInspectionTool implement
|
||||
return PsiElementVisitor.EMPTY_VISITOR;
|
||||
}
|
||||
var scopes = buildAllowedScopes();
|
||||
SpellCheckerManager manager = SpellCheckerManager.getInstance(holder.getProject());
|
||||
return new PsiElementVisitor() {
|
||||
@Override
|
||||
public void visitElement(final @NotNull PsiElement element) {
|
||||
@@ -118,12 +122,13 @@ public final class SpellCheckingInspection extends LocalInspectionTool implement
|
||||
return;
|
||||
}
|
||||
|
||||
inspect(element, session, strategy, holder);
|
||||
inspect(manager, element, session, strategy, holder);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void inspect(@NotNull PsiElement element,
|
||||
private void inspect(@NotNull SpellCheckerManager manager,
|
||||
@NotNull PsiElement element,
|
||||
@NotNull LocalInspectionToolSession session,
|
||||
@NotNull SpellcheckingStrategy strategy,
|
||||
@NotNull ProblemsHolder holder) {
|
||||
@@ -137,7 +142,6 @@ public final class SpellCheckingInspection extends LocalInspectionTool implement
|
||||
);
|
||||
if (result == SpellCheckingResult.Checked) return;
|
||||
|
||||
SpellCheckerManager manager = SpellCheckerManager.getInstance(holder.getProject());
|
||||
Set<SpellCheckingScope> scopes = buildAllowedScopes();
|
||||
tokenize(
|
||||
strategy, element,
|
||||
|
||||
@@ -8,7 +8,6 @@ import com.intellij.codeInsight.intention.choice.ChoiceTitleIntentionAction
|
||||
import com.intellij.codeInsight.intention.choice.ChoiceVariantIntentionAction
|
||||
import com.intellij.codeInsight.intention.choice.DefaultIntentionActionWithChoice
|
||||
import com.intellij.codeInsight.intention.preview.IntentionPreviewUtils
|
||||
import com.intellij.codeInspection.util.IntentionName
|
||||
import com.intellij.openapi.editor.Document
|
||||
import com.intellij.openapi.editor.Editor
|
||||
import com.intellij.openapi.editor.impl.DocumentMarkupModel
|
||||
@@ -27,19 +26,12 @@ import com.intellij.spellchecker.statistics.SpellcheckerRateTracker
|
||||
import com.intellij.spellchecker.util.SpellCheckerBundle
|
||||
import com.intellij.util.concurrency.ThreadingAssertions
|
||||
|
||||
internal class ChangeTo(
|
||||
internal class ChangeTo @JvmOverloads constructor(
|
||||
typo: String,
|
||||
element: PsiElement,
|
||||
private val range: TextRange,
|
||||
private val tracker: SpellcheckerRateTracker?,
|
||||
private val tracker: SpellcheckerRateTracker? = null,
|
||||
) : DefaultIntentionActionWithChoice, LazySuggestions(typo) {
|
||||
// To prevent API breakage
|
||||
constructor(typo: String, element: PsiElement, range: TextRange) : this(
|
||||
typo,
|
||||
element,
|
||||
range,
|
||||
null,
|
||||
)
|
||||
|
||||
private val pointer = SmartPointerManager.getInstance(element.project).createSmartPsiElementPointer(element, element.containingFile)
|
||||
|
||||
|
||||
+7
-1
@@ -1,4 +1,10 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.spellchecker.tokenizer
|
||||
|
||||
class PlainTextSpellcheckingStrategy: SpellcheckingStrategy()
|
||||
import com.intellij.openapi.util.registry.Registry
|
||||
|
||||
class PlainTextSpellcheckingStrategy: SpellcheckingStrategy() {
|
||||
override fun useTextLevelSpellchecking(): Boolean {
|
||||
return Registry.`is`("spellchecker.grazie.enabled")
|
||||
}
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh<TYPO descr="Typo: In word 'YWEK'">YWEK</TYPO>
|
||||
<TYPO>YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEK</TYPO>
|
||||
@@ -1 +1 @@
|
||||
someСorrectWordsAndTypo
|
||||
someCorrectWordsAndTypo
|
||||
@@ -1 +1 @@
|
||||
SoomeTypoJooinedTogeether
|
||||
SomeTypoJoinedTogether
|
||||
@@ -1 +1 @@
|
||||
someTypoAndСorrectWords
|
||||
someTypoAndCorrectWords
|
||||
@@ -4,6 +4,7 @@ package com.intellij.spellchecker.xml;
|
||||
import com.intellij.codeInspection.SuppressQuickFix;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.tree.LeafPsiElement;
|
||||
@@ -94,6 +95,11 @@ public class XmlSpellcheckingStrategy extends SuppressibleSpellcheckingStrategy
|
||||
return file == null || file.getLanguage() instanceof TemplateLanguage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean useTextLevelSpellchecking() {
|
||||
return Registry.is("spellchecker.grazie.enabled");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isLiteral(@NotNull PsiElement element) {
|
||||
return element instanceof XmlAttributeValue || element instanceof XmlText;
|
||||
|
||||
Reference in New Issue
Block a user