/** * Opens given file in editor. * * @param project current project * @param file file to open */ public static void openFile(@NotNull Project project, @NotNull VirtualFile file) { FileEditorManager.getInstance(project).openFile(file, true); }
/** * Selects then next or previous editor. */ public void selectNextFile(int count, @NotNull DataContext context) { Project project = PlatformDataKeys.PROJECT.getData(context); if (project == null) return; FileEditorManager fem = FileEditorManager.getInstance(project); // API change - don't merge VirtualFile[] editors = fem.getOpenFiles(); VirtualFile current = fem.getSelectedFiles()[0]; for (int i = 0; i < editors.length; i++) { if (editors[i].equals(current)) { int pos = (i + (count % editors.length) + editors.length) % editors.length; fem.openFile(editors[pos], true); } } }
public void testUndo() { DaemonCodeAnalyzerSettings.getInstance().setImportHintEnabled(true); updateSettings(true); myFixture.configureByText("a.go", "package main\n\nfunc main() { <caret> }"); myFixture.type("fmt."); myFixture.doHighlighting(); myFixture.doHighlighting(); myFixture.checkResult("package main\n\nimport \"fmt\"\n\nfunc main() { fmt. }"); FileEditor editor = FileEditorManager.getInstance(myFixture.getProject()).getSelectedEditor(myFixture.getFile().getVirtualFile()); UndoManager.getInstance(myFixture.getProject()).undo(editor); myFixture.checkResult("package main\n\nfunc main() { <caret> }"); }
/** * Selects then next or previous editor. */ public boolean selectFile(int count, @NotNull DataContext context) { final Project project = PlatformDataKeys.PROJECT.getData(context); if (project == null) return false; FileEditorManager fem = FileEditorManager.getInstance(project); // API change - don't merge VirtualFile[] editors = fem.getOpenFiles(); if (count == 99) { count = editors.length - 1; } if (count < 0 || count >= editors.length) { return false; } fem.openFile(editors[count], true); return true; }
@Override protected void postProcess(PsiFile createdElement, String templateName, Map<String, String> customProperties) { if (createdElement instanceof GoFile) { GoPackageClause packageClause = ((GoFile)createdElement).getPackage(); if (packageClause == null) { return; } Project project = createdElement.getProject(); Editor editor = FileEditorManager.getInstance(project).getSelectedTextEditor(); if (editor == null) { return; } VirtualFile virtualFile = createdElement.getContainingFile().getVirtualFile(); if (virtualFile == null) { return; } if (FileDocumentManager.getInstance().getDocument(virtualFile) == editor.getDocument()) { editor.getCaretModel().moveToOffset(packageClause.getTextRange().getEndOffset()); } } }
public boolean isOpenFile(Project project, VirtualFile file) { VirtualFile[] openFiles = FileEditorManager.getInstance(project).getOpenFiles(); return Arrays.asList(openFiles).contains(file); }
@Nullable private XSourcePosition findPosition() { XDebugSession debugSession = getSession(); if (debugSession == null) return null; XStackFrame stackFrame = debugSession.getCurrentStackFrame(); if (stackFrame == null) return null; Project project = debugSession.getProject(); XSourcePosition position = debugSession.getCurrentPosition(); Editor editor = ((FileEditorManagerImpl)FileEditorManager.getInstance(project)).getSelectedTextEditor(true); if (editor == null || position == null) return null; String name = myName.startsWith("&") ? myName.replaceFirst("\\&", "") : myName; PsiElement resolved = findTargetElement(project, position, editor, name); if (resolved == null) return null; VirtualFile virtualFile = resolved.getContainingFile().getVirtualFile(); return XDebuggerUtil.getInstance().createPositionByOffset(virtualFile, resolved.getTextOffset()); } });
= FileEditorManager.getInstance(project).getSelectedFiles(); if (selectedFiles.length == 0) { return;
@Override public void run() { VirtualFile file = LocalFileSystem.getInstance().refreshAndFindFileByPath(filePath); if (file != null && file.isValid()) { FileEditorProvider[] providers = FileEditorProviderManager.getInstance() .getProviders(project, file); if (providers.length != 0) { OpenFileDescriptor descriptor = new OpenFileDescriptor(project, file); FileEditorManager.getInstance(project).openTextEditor(descriptor, true); } } } });
@Override public void line(int line) { VirtualFile source = fileForClass(); if (source != null) { FileEditorManager.getInstance(project).openEditor(new OpenFileDescriptor(project, source, line - 1, 0), true); } }
@NotNull public List<Editor> getGrammarEditors(@NotNull Project project) { VirtualFile file = getGrammarFile(); if (file == null) return Collections.emptyList(); FileEditor[] editors = FileEditorManager.getInstance(project).getAllEditors(file); if (editors.length == 0) return Collections.emptyList(); List<Editor> result = ContainerUtil.newArrayList(); for (FileEditor editor : editors) { if (editor instanceof TextEditor) result.add(((TextEditor)editor).getEditor()); } return result; }
public static void closeFile(Project project, VirtualFile file) { FileEditorManager.getInstance(project).closeFile(file); } }
final Editor selectedTextEditor = FileEditorManager.getInstance(project).getSelectedTextEditor(); if (selectedTextEditor != null) { selectedFile = FileDocumentManager.getInstance().getFile(selectedTextEditor.getDocument()); final VirtualFile[] selectedFiles = FileEditorManager.getInstance(project).getSelectedFiles(); if (selectedFiles.length > 0) { selectedFile = selectedFiles[0];
@NotNull public List<Editor> getPreviewEditors(@NotNull Project project) { FileEditorManager fileEditorManager = FileEditorManager.getInstance(project); VirtualFile[] files = fileEditorManager.getOpenFiles(); if (files.length == 0) return Collections.emptyList(); List<Editor> result = ContainerUtil.newArrayList(); PsiManager psiManager = PsiManager.getInstance(project); for (VirtualFile file : files) { PsiFile psiFile = psiManager.findFile(file); Language language = psiFile == null ? null : psiFile.getLanguage(); if (language == this) { for (FileEditor editor : fileEditorManager.getAllEditors(file)) { if (editor instanceof TextEditor) result.add(((TextEditor)editor).getEditor()); } } } return result; }
@Override public void linkSelected(LinkLabel linkLabel, Object o) { FileEditorManager.getInstance(csvTableEditor.getProject()).openTextEditor(new OpenFileDescriptor(csvTableEditor.getProject(), csvTableEditor.getFile()), true); // this line is for legacy reasons (https://youtrack.jetbrains.com/issue/IDEA-199790) FileEditorManager.getInstance(csvTableEditor.getProject()).setSelectedEditor(csvTableEditor.getFile(), CsvFileEditorProvider.EDITOR_TYPE_ID); } }
@Override public TextEditorHighlightingPass createHighlightingPass(@NotNull final PsiFile file, @NotNull final Editor editor) { if (ApplicationManager.getApplication().isHeadlessEnvironment()) return null; if (editor.isOneLineMode()) return null; if (!(file instanceof BnfFile)) return null; final VirtualFile virtualFile = file.getVirtualFile(); if (virtualFile == null || !FileEditorManager.getInstance(myProject).isFileOpen(virtualFile)) return null; return new TextEditorHighlightingPass(file.getProject(), editor.getDocument(), false) { List<HighlightInfo> infos = ContainerUtil.newArrayList(); @Override public void doCollectInformation(@NotNull ProgressIndicator progress) { infos.clear(); LivePreviewLanguage previewLanguage = LivePreviewLanguage.findInstance(file); if (previewLanguage == null) return; List<Editor> previewEditors = previewLanguage.getPreviewEditors(myProject); for (Editor e : previewEditors) { if (Boolean.TRUE.equals(GRAMMAR_AT_CARET_KEY.get(e))) { collectHighlighters(myProject, previewEditors.get(0), previewLanguage, infos); } } } @Override public void doApplyInformationToEditor() { Document document = editor.getDocument(); UpdateHighlightersUtil.setHighlightersToEditor(myProject, document, 0, file.getTextLength(), infos, getColorsScheme(), getId()); } }; }
protected void doTestTypeHierarchy() { initWithFileSmartWithoutErrors(); Editor editor = getEditor(); Object psiElement = FileEditorManager.getInstance(getProject()) .getData(CommonDataKeys.PSI_ELEMENT.getName(), editor, editor.getCaretModel().getCurrentCaret()); MapDataContext dataContext = new MapDataContext(); dataContext.put(CommonDataKeys.PROJECT, getProject());
void refreshAllFiles() { VirtualFile[] openFiles = fileEditorManager.getOpenFiles(); Arrays.stream(openFiles) .map(this::getPsi) .filter(Objects::nonNull) .forEach(codeAnalyzer::restart); }
private void setPositionForShown(JBPopup popup) { Editor editor = fileEditorManager.getSelectedTextEditor(); if (null != editor) { popup.showInBestPositionFor(editor); } else { popup.showCenteredInCurrentWindow(project); } }
/** * Gets the editor for the virtual file within the editor manager. * * @param manager The file editor manager * @param file The virtual file get the editor for * @return The matching editor or null if no match was found */ @Nullable public static Editor getEditor(@NotNull final FileEditorManager manager, @Nullable final VirtualFile file) { if (file == null) { return null; } final Document doc = FileDocumentManager.getInstance().getDocument(file); if (doc == null) { return null; } final Editor[] editors = EditorFactory.getInstance().getEditors(doc, manager.getProject()); if (editors.length > 0) { return editors[0]; } return null; }