diff --git a/xml/xml-psi-impl/src/com/intellij/ide/highlighter/HtmlFileHighlighter.java b/xml/xml-psi-impl/src/com/intellij/ide/highlighter/HtmlFileHighlighter.java index c6b94fdc9c51..50244ecff2c6 100644 --- a/xml/xml-psi-impl/src/com/intellij/ide/highlighter/HtmlFileHighlighter.java +++ b/xml/xml-psi-impl/src/com/intellij/ide/highlighter/HtmlFileHighlighter.java @@ -7,6 +7,7 @@ import com.intellij.openapi.editor.HighlighterColors; import com.intellij.openapi.editor.XmlHighlighterColors; import com.intellij.openapi.editor.colors.TextAttributesKey; import com.intellij.openapi.fileTypes.SyntaxHighlighterBase; +import com.intellij.openapi.progress.Cancellation; import com.intellij.psi.tree.IElementType; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.MultiMap; @@ -52,8 +53,12 @@ public class HtmlFileHighlighter extends SyntaxHighlighterBase { ourMap.putValue(XML_BAD_CHARACTER, HighlighterColors.BAD_CHARACTER); - registerAdditionalHighlighters(ourMap); - EMBEDDED_HIGHLIGHTERS.addExtensionPointListener(new XmlFileHighlighter.EmbeddedTokenHighlighterExtensionPointListener(ourMap), null); + Cancellation.computeInNonCancelableSection(() -> { + // PCE in static initializer breaks class initialization + registerAdditionalHighlighters(ourMap); + EMBEDDED_HIGHLIGHTERS.addExtensionPointListener(new XmlFileHighlighter.EmbeddedTokenHighlighterExtensionPointListener(ourMap), null); + return null; + }); } @Override