PsiElementVisitor (@NotNull final ProblemsHolder holder, boolean isOnTheFly) { return new XmlElementVisitor() { @Override public void visitXmlTag(final @NotNull XmlTag tag) { if (XmlExtension.shouldIgnoreSelfClosingTag(tag) || !isTagWithEmptyEndNotAllowed(tag)) { return; } if (XmlChildRole.EMPTY_TAG_END_FINDER.findChild(tag.getNode()) == null || !tagIsWellFormed(tag)) { return; } ProblemHighlightType type = isNotInjectedOrCustomHtmlFile(tag.getContainingFile()) ? ProblemHighlightType.GENERIC_ERROR_OR_WARNING : ProblemHighlightType.INFORMATION; // should not report INFORMATION in batch mode if (isOnTheFly || type != ProblemHighlightType.INFORMATION) { holder.registerProblem(tag, XmlAnalysisBundle.message("html.inspections.check.empty.script.message"), type, new MyLocalQuickFix()); } } }; }