diff --git a/spellchecker/src/com/intellij/spellchecker/xml/XmlSpellcheckingStrategy.java b/spellchecker/src/com/intellij/spellchecker/xml/XmlSpellcheckingStrategy.java index 47478266656d..96ca42e13c64 100644 --- a/spellchecker/src/com/intellij/spellchecker/xml/XmlSpellcheckingStrategy.java +++ b/spellchecker/src/com/intellij/spellchecker/xml/XmlSpellcheckingStrategy.java @@ -2,7 +2,12 @@ package com.intellij.spellchecker.xml; import com.intellij.codeInspection.SuppressQuickFix; import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiFile; +import com.intellij.psi.templateLanguages.TemplateLanguage; +import com.intellij.psi.xml.XmlToken; +import com.intellij.psi.xml.XmlTokenType; import com.intellij.spellchecker.tokenizer.SuppressibleSpellcheckingStrategy; +import com.intellij.spellchecker.tokenizer.Tokenizer; import com.intellij.util.xml.DomElement; import com.intellij.util.xml.DomUtil; import org.jetbrains.annotations.NotNull; @@ -12,6 +17,17 @@ import org.jetbrains.annotations.NotNull; */ public class XmlSpellcheckingStrategy extends SuppressibleSpellcheckingStrategy { + @NotNull + @Override + public Tokenizer getTokenizer(PsiElement element) { + if (element instanceof XmlToken && ((XmlToken)element).getTokenType() == XmlTokenType.XML_DATA_CHARACTERS) { + PsiFile file = element.getContainingFile(); + if (file == null || file.getLanguage() instanceof TemplateLanguage) + return EMPTY_TOKENIZER; + } + return super.getTokenizer(element); + } + @Override public boolean isSuppressedFor(@NotNull PsiElement element, @NotNull String name) { DomElement domElement = DomUtil.getDomElement(element);