boolean (PsiElement anchor, LocalInspectionTool tool) { if (anchor == null) return false; PsiElement prevSibling; if (!(anchor instanceof XmlComment)) { prevSibling = anchor.getPrevSibling(); while (prevSibling instanceof PsiWhiteSpace || prevSibling instanceof XmlText) { prevSibling = prevSibling.getPrevSibling(); } } else { prevSibling = anchor; } if (prevSibling instanceof XmlProlog) { if (prevSibling.getTextLength() > 0 && !"\n".equals(prevSibling.getText())) { return isSuppressedAt(prevSibling.getLastChild(), tool); } else { return isSuppressedAt(prevSibling, tool); } } if (prevSibling instanceof XmlComment comment) { final String text = comment.getCommentText(); final Matcher matcher = SUPPRESSION_PATTERN.matcher(text); if (matcher.matches()) { final String[] strings = matcher.group(1).split(","); final String toolId = tool.getID(); for (String s : strings) { if (s.trim().equals(toolId) || ALL_ID.equals(s.trim())) return true; } } } return false; }