void (@NotNull Project project, @NotNull Document document, int startOffset, int endOffset, @NotNull Processor<? super PsiElement> processor) { PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(document); if (file == null) { return; } PsiElement element; int offset = startOffset; while (offset < endOffset) { element = file.findElementAt(offset); if (element != null && element.getTextLength() > 0) { if (!processor.process(element)) { return; } else { offset = element.getTextRange().getEndOffset(); } } else { offset++; } } }