diff --git a/xml/xml-psi-impl/src/com/intellij/lang/html/HTMLParser.java b/xml/xml-psi-impl/src/com/intellij/lang/html/HTMLParser.java index aedaa2b297e5..76cf6ff95275 100644 --- a/xml/xml-psi-impl/src/com/intellij/lang/html/HTMLParser.java +++ b/xml/xml-psi-impl/src/com/intellij/lang/html/HTMLParser.java @@ -21,8 +21,8 @@ public class HTMLParser implements PsiParser { return builder.getTreeBuilt(); } - public static void parseWithoutBuildingTree(@NotNull IElementType root, @NotNull PsiBuilder builder) { - parseWithoutBuildingTree(root, builder, new HtmlParsing(builder)); + public void parseWithoutBuildingTree(@NotNull IElementType root, @NotNull PsiBuilder builder) { + parseWithoutBuildingTree(root, builder, createHtmlParsing(builder)); } private static void parseWithoutBuildingTree(@NotNull IElementType root, @NotNull PsiBuilder builder, @@ -38,4 +38,4 @@ public class HTMLParser implements PsiParser { protected HtmlParsing createHtmlParsing(@NotNull PsiBuilder builder) { return new HtmlParsing(builder); } -} \ No newline at end of file +} diff --git a/xml/xml-psi-impl/src/com/intellij/lexer/HtmlHighlightingLexer.java b/xml/xml-psi-impl/src/com/intellij/lexer/HtmlHighlightingLexer.java index cb734c11fa04..40df2281cff3 100644 --- a/xml/xml-psi-impl/src/com/intellij/lexer/HtmlHighlightingLexer.java +++ b/xml/xml-psi-impl/src/com/intellij/lexer/HtmlHighlightingLexer.java @@ -67,6 +67,7 @@ public class HtmlHighlightingLexer extends BaseHtmlLexer { XmlEmbeddmentHandler value = new XmlEmbeddmentHandler(); registerHandler(XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN, value); + registerHandler(XmlTokenType.XML_START_TAG_START, value); registerHandler(XmlTokenType.XML_DATA_CHARACTERS, value); registerHandler(XmlTokenType.XML_COMMENT_CHARACTERS, value); } @@ -112,16 +113,10 @@ public class HtmlHighlightingLexer extends BaseHtmlLexer { LOG.assertTrue(highlighter != null, ourStyleFileType); styleLexer = highlighter.getHighlightingLexer(); } - else { - styleLexer = null; - } styleLexers.put(styleType, styleLexer); } else if (hasSeenAttribute()) { - if (ourStyleFileType == null) { - styleLexer = null; - } - else { + if (ourStyleFileType != null) { SyntaxHighlighter highlighter = SyntaxHighlighterFactory.getSyntaxHighlighter(ourStyleFileType, null, null); LOG.assertTrue(highlighter != null, ourStyleFileType); styleLexer = highlighter.getHighlightingLexer(); @@ -265,6 +260,7 @@ public class HtmlHighlightingLexer extends BaseHtmlLexer { final IElementType tokenType = lexer.getTokenType(); if (tokenType == XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN && hasSeenAttribute() || + tokenType == XmlTokenType.XML_START_TAG_START && hasSeenTag() || tokenType == XmlTokenType.XML_DATA_CHARACTERS && hasSeenTag() || tokenType == XmlTokenType.XML_COMMENT_CHARACTERS && hasSeenTag() ) { diff --git a/xml/xml-psi-impl/src/com/intellij/psi/xml/XmlElementType.java b/xml/xml-psi-impl/src/com/intellij/psi/xml/XmlElementType.java index fb04b7a417f8..4abb38d1a6c0 100644 --- a/xml/xml-psi-impl/src/com/intellij/psi/xml/XmlElementType.java +++ b/xml/xml-psi-impl/src/com/intellij/psi/xml/XmlElementType.java @@ -92,7 +92,7 @@ public interface XmlElementType extends XmlTokenType { assert file != null : chameleon; final PsiBuilder builder = PsiBuilderFactory.getInstance().createBuilder(file.getProject(), chameleon); - HTMLParser.parseWithoutBuildingTree(HTML_FILE, builder); + new HTMLParser().parseWithoutBuildingTree(HTML_FILE, builder); return builder.getLightTree(); } }