diff --git a/xml/impl/src/com/intellij/codeInsight/editorActions/XmlTagNameSynchronizer.java b/xml/impl/src/com/intellij/codeInsight/editorActions/XmlTagNameSynchronizer.java index 0ec2d182cbe8..b41845573d7f 100644 --- a/xml/impl/src/com/intellij/codeInsight/editorActions/XmlTagNameSynchronizer.java +++ b/xml/impl/src/com/intellij/codeInsight/editorActions/XmlTagNameSynchronizer.java @@ -170,6 +170,22 @@ public class XmlTagNameSynchronizer extends CommandAdapter implements Applicatio final Document document = event.getDocument(); final int offset = event.getOffset(); final int oldLength = event.getOldLength(); + final CharSequence fragment = event.getNewFragment(); + final int newLength = event.getNewLength(); + + if (document.getUserData(XmlTagInsertHandler.ENFORCING_TAG) == Boolean.TRUE) { + // xml completion inserts extra space after tag name to ensure correct parsing + // we need to ignore it + return; + } + + for (int i = 0; i < newLength; i++) { + if (!XmlUtil.isValidTagNameChar(fragment.charAt(i))) { + clearMarkers(); + return; + } + } + if (myState == State.INITIAL) { final PsiFile file = myDocumentManager.getPsiFile(document); if (file == null || myDocumentManager.getSynchronizer().isInSynchronization(document)) return; @@ -213,22 +229,6 @@ public class XmlTagNameSynchronizer extends CommandAdapter implements Applicatio } if (myMarkers.isEmpty()) return; - final CharSequence fragment = event.getNewFragment(); - final int newLength = event.getNewLength(); - - if (document.getUserData(XmlTagInsertHandler.ENFORCING_TAG) == Boolean.TRUE) { - // xml completion inserts extra space after tag name to ensure correct parsing - // we need to ignore it - return; - } - - for (int i = 0; i < newLength; i++) { - if (!XmlUtil.isValidTagNameChar(fragment.charAt(i))) { - clearMarkers(); - return; - } - } - boolean fitsInMarker = fitsInMarker(offset, oldLength); if (!fitsInMarker) { clearMarkers();