Caret (@Nullable Caret caret, @Nullable PsiFile file) { if (caret == null || file == null || caret instanceof InjectedCaret) return caret; PsiFile injectedFile = findInjectedPsiNoCommit(file, caret.getOffset()); Editor injectedEditor = getInjectedEditorForInjectedFile(caret.getEditor(), injectedFile); if (!(injectedEditor instanceof EditorWindow)) { return caret; } for (Caret injectedCaret : injectedEditor.getCaretModel().getAllCarets()) { if (((InjectedCaret)injectedCaret).getDelegate() == caret) { return injectedCaret; } } return null; }