@NotNull private static Optional<Integer> offset(@NotNull String path, @NotNull Matcher matcher) { VirtualFile virtualFile = LocalFileSystem.getInstance().findFileByPath(path); Optional<Integer> offset = Optional.empty(); if (virtualFile != null) { Document document = FileDocumentManager.getInstance().getDocument(virtualFile); if (document != null) { int lineNumber = Integer.parseInt(matcher.group("lineNumber")); int start = document.getLineStartOffset(lineNumber - 1); @Nullable String formattedColumnNumber = matcher.group("columnNumber"); if (formattedColumnNumber != null) { int column = Integer.parseInt(formattedColumnNumber) - 1; offset = Optional.of(start + column); } else { offset = Optional.of(start); } } } return offset; }
/** * 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; }
private static boolean isLineBreakpointAvailable(@NotNull VirtualFile file, int line, @NotNull Project project) { Document document = FileDocumentManager.getInstance().getDocument(file); if (document == null || document.getLineEndOffset(line) == document.getLineStartOffset(line)) return false; Checker canPutAtChecker = new Checker(); XDebuggerUtil.getInstance().iterateLine(project, document, line, canPutAtChecker); return canPutAtChecker.isLineBreakpointAvailable(); }
protected boolean doSomething(@NotNull VirtualFile virtualFile, @Nullable Module module, @NotNull Project project, @NotNull String title, boolean withProgress, @NotNull Consumer<Boolean> consumer) { Document document = FileDocumentManager.getInstance().getDocument(virtualFile); if (document != null) { FileDocumentManager.getInstance().saveDocument(document); } else { FileDocumentManager.getInstance().saveAllDocuments(); } createExecutor(project, module, title, virtualFile).executeWithProgress(withProgress, result -> { consumer.consume(result); VfsUtil.markDirtyAndRefresh(true, true, true, virtualFile); }); return true; }
private static boolean isLineBreakpointAvailable(@NotNull VirtualFile file, int line, @NotNull Project project) { Document document = FileDocumentManager.getInstance().getDocument(file); if (document == null || document.getLineEndOffset(line) == document.getLineStartOffset(line)) { return false; } Checker canPutAtChecker = new Checker(); XDebuggerUtil.getInstance().iterateLine(project, document, line, canPutAtChecker); // Used to identify line comments, which cannot be correctly processed by the checker. if (document.getText(new TextRange(document.getLineStartOffset(line), document.getLineEndOffset(line))).trim() .startsWith(BALLERINA_LINE_COMMENT_PREFIX)) { return false; } return canPutAtChecker.isLineBreakpointAvailable(); }
private static void resetCursor(@NotNull VirtualFile virtualFile, Project proj, boolean insert) { logger.debug("resetCursor"); Document doc = FileDocumentManager.getInstance().getDocument(virtualFile); if (doc == null) return; // Must be no text editor (such as image) Editor[] editors = EditorFactory.getInstance().getEditors(doc, proj); if (logger.isDebugEnabled()) { logger.debug("There are " + editors.length + " editors for virtual file " + virtualFile.getName()); } for (Editor editor : editors) { editor.getSettings().setBlockCursor(!insert); } }
/** * Helper for inspection message generating. * * @param coveringEntry entry that covers message related * @param virtualFile current working file * @param onTheFly true if called during on the fly editor highlighting. Called from Inspect Code action * otherwise * @return generated message {@link String} */ @NotNull private static String message(@NotNull IgnoreEntry coveringEntry, @NotNull VirtualFile virtualFile, boolean onTheFly) { Document document = FileDocumentManager.getInstance().getDocument(virtualFile); if (onTheFly || document == null) { return IgnoreBundle.message( "codeInspection.coverEntry.message", "\'" + coveringEntry.getText() + "\'" ); } int startOffset = coveringEntry.getTextRange().getStartOffset(); return IgnoreBundle.message( "codeInspection.coverEntry.message", "<a href=\"" + virtualFile.getUrl() + Constants.HASH + startOffset + "\">" + coveringEntry.getText() + "</a>" ); }
Document document = FileDocumentManager.getInstance().getDocument(outerFile); Editor outerEditor = document != null ? Utils.createPreviewEditor(document, null, true) : null;
@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()); } } }
String fileName = file.getName() + ".decompiled.ex"; final Document document = FileDocumentManager.getInstance().getDocument(file); assert document != null : file.getUrl();
@Override public void run() { try { VirtualFile v1 = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(f1); Document document1 = FileDocumentManager.getInstance().getDocument(v1); FileDocumentContentImpl fileDocumentContent1 = new FileDocumentContentImpl(project, document1, v1); VirtualFile v2 = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(f2); Document document2 = FileDocumentManager.getInstance().getDocument(v2); FileDocumentContentImpl fileDocumentContent2 = new FileDocumentContentImpl(project, document2, v2); SimpleDiffRequest simpleDiffRequest = new SimpleDiffRequest(Constant.TITLE, fileDocumentContent1, fileDocumentContent2, f1.getName(), f2.getName()); DiffManager.getInstance().showDiff(project, simpleDiffRequest); } catch (Exception e) { NotificationUtils.errorNotification("Diff Source Error:" + e.getMessage()); } } });
@Nullable @Override public Document getDocument(@NotNull VirtualFile file) { return FileDocumentManager.getInstance().getDocument(file); }
public Editor getEditor(VirtualFile vfile) { final FileDocumentManager fdm = FileDocumentManager.getInstance(); final Document doc = fdm.getDocument(vfile); if (doc == null) return null; EditorFactory factory = EditorFactory.getInstance(); final Editor[] editors = factory.getEditors(doc, previewPanel.project); if ( editors.length==0 ) { // no editor found for this file. likely an out-of-sequence issue // where Intellij is opening a project and doesn't fire events // in order we'd expect. return null; } return editors[0]; // hope just one }
private void setupEditor(Project project) { ApplicationManager.getApplication().runWriteAction(() -> { try { VirtualFile file = FileUtil.getScratchFile(project, "Neo4jGraphDbConsoleParametersPanel.json"); Document document = FILE_DOCUMENT_MANAGER.getDocument(file); globalParamEditor = createEditor(project, document); JLabel jLabel = new JLabel("<html>Global parameters:</html>"); jLabel.setIcon(ICON_HELP); jLabel.setToolTipText("Enter parameters in JSON format. Will be applied to any data source when executed"); globalParamEditor.setHeaderComponent(jLabel); setInitialContent(document); initializeUi(); } catch (Throwable e) { Throwables.throwIfUnchecked(e); throw new RuntimeException(e); } }); }
public CsvTableEditor(@NotNull Project projectArg, @NotNull VirtualFile fileArg) { this.project = projectArg; this.file = fileArg; this.userDataHolder = new UserDataHolderBase(); this.document = FileDocumentManager.getInstance().getDocument(this.file); PsiDocumentManager documentManager = PsiDocumentManager.getInstance(project); this.psiFile = documentManager.getPsiFile(this.document); this.changeSupport = new PropertyChangeSupport(this); this.currentSeparator = CsvCodeStyleSettings.getCurrentSeparator(this.project, this.psiFile.getLanguage()); this.dataManagement = new TableDataHandler(this, TableDataHandler.MAX_SIZE); }
public static DocumentEx getInstance(@NotNull PsiFile originalFile) { VirtualFile file = originalFile.getVirtualFile(); final Document doc = FileDocumentManager.getInstance() .getDocument(file); if (doc instanceof DocumentEx) { return (DocumentEx) doc; } // this is a last-ditch effort; we strongly prefer // the above, as it can prevent psi inconsistency // errors in write actions... // create and cache final VimDocument newDoc = new VimDocument(originalFile); FileDocumentManagerImpl.registerDocument(newDoc, file); return newDoc; } }
@CheckForNull private ClientInputFile createClientInputFile(Module module, VirtualFile virtualFile, VirtualFileTestPredicate testPredicate) { boolean test = testPredicate.test(virtualFile); Charset charset = getEncoding(virtualFile); String relativePath = appUtils.getRelativePathForAnalysis(module, virtualFile); if (relativePath != null) { if (fileDocumentManager.isFileModified(virtualFile)) { return new DefaultClientInputFile(virtualFile, relativePath, test, charset, fileDocumentManager.getDocument(virtualFile)); } else { return new DefaultClientInputFile(virtualFile, relativePath, test, charset); } } return null; }
/** * Must be called from EDT */ private static boolean saveFile(final VirtualFile virtualFile) { ApplicationManager.getApplication().assertIsDispatchThread(); final FileDocumentManager fileDocumentManager = FileDocumentManager.getInstance(); if (fileDocumentManager.isFileModified(virtualFile)) { final Document document = fileDocumentManager.getDocument(virtualFile); if (document != null) { fileDocumentManager.saveDocument(document); return true; } } return false; }
@Override protected void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) { AliasTagElement element = (AliasTagElement)descriptor.getPsiElement(); VirtualFile containingFile = element.getContainingFile().getVirtualFile(); if (containingFile != null) { PsiElement parentElement = element.getParent(); String parentText = parentElement.getText(); int offset = element.getTextOffset(); int parentOffset = offset - parentElement.getTextOffset(); int from = offset + parentText.lastIndexOf('\n', parentOffset) - parentOffset; int to = offset + parentText.indexOf('\n', parentOffset) - parentOffset; if (from >= 0 && from < to) { final Document document = FileDocumentManager.getInstance().getDocument(containingFile); if (document != null) { document.replaceString(from, to, ""); PsiDocumentManager.getInstance(parentElement.getProject()).commitDocument(document); } } } } }
@Override protected void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) { AliasTagElement element = (AliasTagElement)descriptor.getPsiElement(); VirtualFile containingFile = element.getContainingFile().getVirtualFile(); if (containingFile != null) { PsiElement parentElement = element.getParent(); String parentText = parentElement.getText(); int offset = element.getTextOffset(); int parentOffset = offset - parentElement.getTextOffset(); int from = offset + parentText.lastIndexOf('\n', parentOffset) - parentOffset; int to = offset + parentText.indexOf('\n', parentOffset) - parentOffset; if (from >= 0 && from < to) { final Document document = FileDocumentManager.getInstance().getDocument(containingFile); if (document != null) { document.replaceString(from, to, ""); PsiDocumentManager.getInstance(parentElement.getProject()).commitDocument(document); } } } } }