Example usage for com.intellij.openapi.fileEditor OpenFileDescriptor OpenFileDescriptor

List of usage examples for com.intellij.openapi.fileEditor OpenFileDescriptor OpenFileDescriptor

Introduction

In this page you can find the example usage for com.intellij.openapi.fileEditor OpenFileDescriptor OpenFileDescriptor.

Prototype

public OpenFileDescriptor(@NotNull Project project, @NotNull VirtualFile file, int offset) 

Source Link

Usage

From source file:com.intellij.usageView.UsageViewUtil.java

License:Apache License

public static void navigateTo(@NotNull UsageInfo info, boolean requestFocus) {
    int offset = info.getNavigationOffset();
    VirtualFile file = info.getVirtualFile();
    Project project = info.getProject();
    FileEditorManager.getInstance(project).openTextEditor(new OpenFileDescriptor(project, file, offset),
            requestFocus);// w  w w. ja  v a  2  s .co m
}

From source file:com.intellij.util.PsiNavigateUtil.java

License:Apache License

public static void navigate(@Nullable final PsiElement psiElement) {
    if (psiElement != null && psiElement.isValid()) {
        final PsiElement navigationElement = psiElement.getNavigationElement();
        final int offset = navigationElement instanceof PsiFile ? -1 : navigationElement.getTextOffset();
        final VirtualFile virtualFile = navigationElement.getContainingFile().getVirtualFile();
        if (virtualFile != null && virtualFile.isValid()) {
            new OpenFileDescriptor(navigationElement.getProject(), virtualFile, offset).navigate(true);
        }/*from  w w  w . java2  s  .c  om*/
    }
}

From source file:com.intellij.velocity.inspections.DefineInCommentIntention.java

License:Apache License

protected void defineInComment(final Editor editor, final PsiFile fileWithVarReference,
        final PsiFile fileToInsertComment, final boolean addFileReference) {
    final PsiElement ref = getReferenceElement(editor, fileWithVarReference);
    assert ref != null;
    final Project project = fileWithVarReference.getProject();
    if (!FileModificationService.getInstance().prepareFileForWrite(fileToInsertComment)) {
        return;//www .ja  v a  2  s .  co m
    }

    final PsiDocumentManager documentManager = PsiDocumentManager.getInstance(project);
    final Document documentToInsertComment = documentManager.getDocument(fileToInsertComment);
    assert documentToInsertComment != null;
    new WriteCommandAction(project) {
        @Override
        protected void run(Result result) throws Throwable {
            Editor editor = FileEditorManager.getInstance(project).openTextEditor(
                    new OpenFileDescriptor(project, fileToInsertComment.getViewProvider().getVirtualFile(), 0),
                    true);
            assert editor != null;
            assert documentToInsertComment == editor.getDocument();
            int insertionIndex = documentToInsertComment.getText().startsWith(
                    VtlFileIndex.IMPLICIT_INCLUDE_MARKER) ? VtlFileIndex.IMPLICIT_INCLUDE_MARKER.length() : 0;
            editor.getCaretModel().moveToOffset(insertionIndex);
            TemplateManager manager = TemplateManager.getInstance(project);
            final Template template = manager.createTemplate("", "");
            final String relativePath = addFileReference
                    ? PsiUtil.getRelativePath(fileToInsertComment, fileWithVarReference)
                    : null;
            prepareTemplate(template, ref, relativePath, fileToInsertComment);
            manager.startTemplate(editor, template);
        }
    }.execute();
}

From source file:com.intellij.xdebugger.impl.XSourcePositionImpl.java

License:Apache License

@NotNull
public static OpenFileDescriptor doCreateOpenFileDescriptor(@NotNull Project project,
        @NotNull XSourcePosition position) {
    return position.getOffset() != -1
            ? new OpenFileDescriptor(project, position.getFile(), position.getOffset())
            : new OpenFileDescriptor(project, position.getFile(), position.getLine(), 0);
}

From source file:com.intellij.xml.util.AddDtdDeclarationFix.java

License:Apache License

@Override
public void applyFix(@Nonnull final Project project, @Nonnull final ProblemDescriptor descriptor) {
    final PsiElement element = descriptor.getPsiElement();
    final PsiFile containingFile = element.getContainingFile();

    @NonNls//from   w  ww  .  j ava  2  s . com
    String prefixToInsert = "";
    @NonNls
    String suffixToInsert = "";

    final int UNDEFINED_OFFSET = -1;
    int anchorOffset = UNDEFINED_OFFSET;
    PsiElement anchor = PsiTreeUtil.getParentOfType(element, XmlElementDecl.class, XmlAttlistDecl.class,
            XmlEntityDecl.class, XmlConditionalSection.class);
    if (anchor != null) {
        anchorOffset = anchor.getTextRange().getStartOffset();
    }

    if (anchorOffset == UNDEFINED_OFFSET && containingFile.getLanguage() == XMLLanguage.INSTANCE) {
        XmlFile file = (XmlFile) containingFile;
        final XmlProlog prolog = file.getDocument().getProlog();
        assert prolog != null;

        final XmlDoctype doctype = prolog.getDoctype();
        final XmlMarkupDecl markupDecl;

        if (doctype != null) {
            markupDecl = doctype.getMarkupDecl();
        } else {
            markupDecl = null;
        }

        if (doctype == null) {
            final XmlTag rootTag = file.getDocument().getRootTag();
            prefixToInsert = "<!DOCTYPE " + ((rootTag != null) ? rootTag.getName() : "null");
            suffixToInsert = ">\n";
        }
        if (markupDecl == null) {
            prefixToInsert += " [\n";
            suffixToInsert = "]" + suffixToInsert;

            if (doctype != null) {
                anchorOffset = doctype.getTextRange().getEndOffset() - 1; // just before last '>'
            } else {
                anchorOffset = prolog.getTextRange().getEndOffset();
            }
        }
    }

    if (anchorOffset == UNDEFINED_OFFSET) {
        anchorOffset = element.getTextRange().getStartOffset();
    }

    OpenFileDescriptor openDescriptor = new OpenFileDescriptor(project, containingFile.getVirtualFile(),
            anchorOffset);
    final Editor editor = FileEditorManager.getInstance(project).openTextEditor(openDescriptor, true);
    final TemplateManager templateManager = TemplateManager.getInstance(project);
    final Template t = templateManager.createTemplate("", "");

    if (!prefixToInsert.isEmpty()) {
        t.addTextSegment(prefixToInsert);
    }
    t.addTextSegment("<!" + myElementDeclarationName + " " + myReference + " ");
    t.addEndVariable();
    t.addTextSegment(">\n");
    if (!suffixToInsert.isEmpty()) {
        t.addTextSegment(suffixToInsert);
    }
    templateManager.startTemplate(editor, t);
}

From source file:com.jetbrains.lang.dart.assists.AssistUtils.java

License:Apache License

@Nullable
public static Editor navigate(@NotNull final Project project, @NotNull final VirtualFile file,
        final int offset) {
    final OpenFileDescriptor descriptor = new OpenFileDescriptor(project, file, offset);
    descriptor.setScrollType(ScrollType.MAKE_VISIBLE);
    descriptor.navigate(true);/*from   www .j a v a 2 s  . c  o m*/

    final FileEditor fileEditor = FileEditorManager.getInstance(project).getSelectedEditor(file);
    return fileEditor instanceof TextEditor ? ((TextEditor) fileEditor).getEditor() : null;
}

From source file:com.jetbrains.lang.dart.ide.errorTreeView.DartProblemsViewPanel.java

License:Apache License

@Nullable
private Navigatable createNavigatable() {
    final DartProblem problem = myTable.getSelectedObject();
    if (problem != null) {
        final VirtualFile file = LocalFileSystem.getInstance()
                .findFileByPath(problem.getSystemIndependentPath());
        if (file != null) {
            final OpenFileDescriptor navigatable = new OpenFileDescriptor(myProject, file, problem.getOffset());
            navigatable.setScrollType(ScrollType.MAKE_VISIBLE);
            return navigatable;
        }//from w  ww .ja v a 2  s .  co  m
    }

    return null;
}

From source file:com.jetbrains.unchain.ui.UnchainPanel.java

License:Apache License

private void navigateToReference(PsiElement target) {
    if (target != null && myCallChainList.getSelectedIndex() == myCallChainList.getModel().getSize() - 1) {
        BadDependencyItem badDependency = (BadDependencyItem) myBadDepsList.getSelectedValue();
        PsiReference reference = ReferencesSearch
                .search(badDependency.getPsiElement(), new LocalSearchScope(target)).findFirst();
        if (reference != null) {
            new OpenFileDescriptor(myProject, reference.getElement().getContainingFile().getVirtualFile(),
                    reference.getRangeInElement().getStartOffset()
                            + reference.getElement().getTextRange().getStartOffset()).navigate(true);
            return;
        }//from   w w w  .ja v  a  2  s.  c  o  m
    }
    if (target instanceof Navigatable) {
        ((Navigatable) target).navigate(true);
    }
}

From source file:com.sixrr.guiceyidea.utils.EditorCaretMover.java

License:Apache License

@Nullable
public Editor openInEditor(PsiElement element) {
    final PsiFile psiFile;
    final int i;
    if (element instanceof PsiFile) {
        psiFile = (PsiFile) element;/*from  w  ww. j  ava  2s.  c  o  m*/
        i = -1;
    } else {
        psiFile = element.getContainingFile();
        i = element.getTextOffset();
    }
    if (psiFile == null) {
        return null;
    }
    final VirtualFile virtualFile = psiFile.getVirtualFile();
    if (virtualFile != null) {
        final OpenFileDescriptor fileDesc = new OpenFileDescriptor(project, virtualFile, i);
        final FileEditorManager fileEditorManager = FileEditorManager.getInstance(project);
        return fileEditorManager.openTextEditor(fileDesc, true);
    } else {
        Logger.getInstance("Foo").error("Virtual file doesn't exist");
        return null;
    }
}

From source file:com.sixrr.metrics.utils.EditorCaretMover.java

License:Apache License

@Nullable
public Editor openInEditor(PsiElement element) {

    final PsiFile psiFile;
    final int i;
    if (element instanceof PsiFile) {
        psiFile = (PsiFile) element;/*from   w ww .ja  va 2s . com*/
        i = -1;
    } else {
        psiFile = element.getContainingFile();
        i = element.getTextOffset();
    }
    if (psiFile == null) {
        return null;
    }
    final OpenFileDescriptor fileDesc = new OpenFileDescriptor(project, psiFile.getVirtualFile(), i);
    disableMovementOneTime();
    final FileEditorManager fileEditorManager = FileEditorManager.getInstance(project);
    return fileEditorManager.openTextEditor(fileDesc, false);
}