boolean (@NotNull ASTNode stringNode, @NotNull String text, @NotNull String quotes) { if (text.length() < 6 || !text.endsWith(quotes)) { int startOffset = StringUtil.trimTrailing(stringNode.getText()).lastIndexOf('\n'); if (startOffset < 0) { startOffset = stringNode.getTextRange().getStartOffset(); } else { startOffset = stringNode.getTextRange().getStartOffset() + startOffset + 1; } final TextRange highlightRange = new TextRange(startOffset, stringNode.getTextRange().getEndOffset()); getHolder().newAnnotation(HighlightSeverity.ERROR, PyPsiBundle.message("ANN.missing.closing.triple.quotes")).range(highlightRange).create(); return true; } return false; }