From a8992f523de8898ff68263088bcdfcba96176c46 Mon Sep 17 00:00:00 2001 From: Fedor Korotkov Date: Fri, 16 Aug 2013 13:05:42 +0400 Subject: [PATCH] WEB-8569 EJS: HTML tag is not closed inside quotes --- .../editorActions/XmlGtTypedHandler.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/xml/impl/src/com/intellij/codeInsight/editorActions/XmlGtTypedHandler.java b/xml/impl/src/com/intellij/codeInsight/editorActions/XmlGtTypedHandler.java index 11677b3ed5b5..71cba6f09053 100644 --- a/xml/impl/src/com/intellij/codeInsight/editorActions/XmlGtTypedHandler.java +++ b/xml/impl/src/com/intellij/codeInsight/editorActions/XmlGtTypedHandler.java @@ -47,7 +47,12 @@ import org.jetbrains.annotations.NonNls; public class XmlGtTypedHandler extends TypedHandlerDelegate { private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.editorActions.TypedHandler"); - public Result beforeCharTyped(final char c, final Project project, final Editor editor, final PsiFile editedFile, final FileType fileType) { + public Result beforeCharTyped(final char c, final Project project, Editor editor, PsiFile editedFile, final FileType fileType) { + final Editor injectedEditor = InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(editor, editedFile); + if (editor != injectedEditor) { + editor = injectedEditor; + editedFile = PsiDocumentManager.getInstance(project).getPsiFile(injectedEditor.getDocument()); + } final WebEditorOptions webEditorOptions = WebEditorOptions.getInstance(); if (c == '>' && webEditorOptions != null && webEditorOptions.isAutomaticallyInsertClosingTag() && fileContainsXmlLanguage(editedFile)) { PsiDocumentManager.getInstance(project).commitAllDocuments(); @@ -66,13 +71,6 @@ public class XmlGtTypedHandler extends TypedHandlerDelegate { // elementAtCaret = element = provider.findElementAt(offset - 1, XMLLanguage.class); } - if (element == null && offset > 0) { - // seems like an injection in a template file - final PsiElement injectedElement = InjectedLanguageUtil.findInjectedElementNoCommit(file, offset); - if (injectedElement != null && injectedElement.getContainingFile() instanceof XmlFile) { - elementAtCaret = element = injectedElement; - } - } if (!(element instanceof PsiWhiteSpace)) { boolean nonAcceptableDelimiter = true;