boolean (@Nullable final PsiFile psiFile) { if (psiFile == null) return false; final VirtualFile file = psiFile.getVirtualFile(); final Project project = psiFile.getProject(); if (ReadonlyStatusHandler.ensureFilesWritable(project, file)) { return true; } ApplicationManager.getApplication().invokeLater(() -> { final Editor editor = FileEditorManager.getInstance(project).openTextEditor(new OpenFileDescriptor(project, file), true); if (editor != null && (ApplicationManager.getApplication().isHeadlessEnvironment() || editor.getComponent().isDisplayable())) { HintManager.getInstance().showErrorHint(editor, CodeInsightBundle.message("error.hint.file.is.readonly", file.getPresentableUrl())); } }, project.getDisposed()); return false; }