List<Block> () { if (myBuildIndentsOnly) { return EMPTY; } if (!(this instanceof SettingsAwareBlock)) { return EMPTY; } PsiElement psi = myNode.getPsi(); if (psi == null) { return EMPTY; } PsiFile file = psi.getContainingFile(); if (file == null) { return EMPTY; } TextRange blockRange = myNode.getTextRange(); List<DocumentWindow> documentWindows = InjectedLanguageManager.getInstance(file.getProject()).getCachedInjectedDocumentsInRange(file, blockRange); if (documentWindows.isEmpty()) { return EMPTY; } for (DocumentWindow documentWindow : documentWindows) { int startOffset = documentWindow.injectedToHost(0); int endOffset = startOffset + documentWindow.getTextLength(); if (blockRange.containsRange(startOffset, endOffset)) { PsiFile injected = PsiDocumentManager.getInstance(psi.getProject()).getCachedPsiFile(documentWindow); if (injected != null) { List<Block> result = new ArrayList<>(); DefaultInjectedLanguageBlockBuilder builder = new DefaultInjectedLanguageBlockBuilder(((SettingsAwareBlock)this).getSettings()); builder.addInjectedBlocks(result, myNode, getWrap(), getAlignment(), getIndent()); return result; } } } return EMPTY; }