boolean (final PsiElement tag) { final TextRange tagRange = tag.getTextRange(); for (XmlTag subTag : JBIterable.of(myNode.getPsi().getChildren()).filter(XmlTag.class)) { final TextRange subTagRange = subTag.getTextRange(); if (subTagRange.getEndOffset() < tagRange.getStartOffset()) continue; if (subTagRange.getStartOffset() > tagRange.getEndOffset()) return true; if (tagRange.getStartOffset() > subTagRange.getStartOffset() && tagRange.getEndOffset() < subTagRange.getEndOffset()) return false; if (tagRange.getEndOffset() > subTagRange.getStartOffset() && tagRange.getEndOffset() < subTagRange.getEndOffset()) return false; } return true; }