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) 

Source Link

Usage

From source file:com.intellij.uiDesigner.make.FormElementNavigatable.java

License:Apache License

public void navigate(boolean requestFocus) {
    if (!myVirtualFile.isValid())
        return;//from   www . j  av a2 s. co m
    OpenFileDescriptor descriptor = new OpenFileDescriptor(myProject, myVirtualFile);
    final List<FileEditor> fileEditors = FileEditorManager.getInstance(myProject).openEditor(descriptor,
            requestFocus);
    if (myComponentId != null) {
        for (FileEditor editor : fileEditors) {
            if (editor instanceof UIFormEditor) {
                ((UIFormEditor) editor).selectComponentById(myComponentId);
                break;
            }
        }
    }
}

From source file:com.intellij.xdebugger.impl.ui.ExecutionPointHighlighter.java

License:Apache License

private void doShow(boolean navigate) {
    ApplicationManager.getApplication().assertIsDispatchThread();
    if (ApplicationManager.getApplication().isUnitTestMode())
        return;/*  w  ww .ja v a 2 s .co  m*/

    removeHighlighter();

    OpenFileDescriptor fileDescriptor = myOpenFileDescriptor;
    if (!navigate && myOpenFileDescriptor != null) {
        fileDescriptor = new OpenFileDescriptor(myProject, myOpenFileDescriptor.getFile());
    }
    myEditor = fileDescriptor == null ? null : XDebuggerUtilImpl.createEditor(fileDescriptor);
    if (myEditor != null) {
        addHighlighter();
    }
}

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

License:Apache License

private void adjustMouseTrackingCounter(final XSourcePosition position, final int increment) {
    if (position == null || ApplicationManager.getApplication().isUnitTestMode())
        return;/*from w w w.ja va 2 s .  c  o  m*/

    // need to always invoke later to maintain order of increment/decrement
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            if (myProject.isDisposed())
                return;
            Editor editor = XDebuggerUtilImpl
                    .createEditor(new OpenFileDescriptor(myProject, position.getFile()));
            if (editor != null) {
                JComponent component = editor.getComponent();
                Object o = component.getClientProperty(EditorImpl.IGNORE_MOUSE_TRACKING);
                Integer value = ((o instanceof Integer) ? (Integer) o : 0) + increment;
                component.putClientProperty(EditorImpl.IGNORE_MOUSE_TRACKING, value > 0 ? value : null);
            }
        }
    });
}

From source file:com.sylvanaar.idea.Lua.actions.GenerateLuaListingAction.java

License:Apache License

public void actionPerformed(AnActionEvent e) {
    Project project = e.getData(LangDataKeys.PROJECT);
    assert project != null;

    Module module = e.getData(LangDataKeys.MODULE);
    assert module != null;

    Sdk sdk = LuaSdkType.findLuaSdk(module);
    assert sdk != null;

    final String homePath = sdk.getHomePath();
    if (homePath == null)
        return;/*from  w w w . java 2  s.  c o m*/

    String path = LuaSdkType.getByteCodeCompilerExecutable(homePath).getParent();
    String exePath = LuaSdkType.getTopLevelExecutable(homePath).getAbsolutePath();

    PsiFile currfile = e.getData(LangDataKeys.PSI_FILE);
    if (currfile == null || !(currfile instanceof LuaPsiFile))
        return;

    FileDocumentManager.getInstance().saveAllDocuments();
    LuaSystemUtil.clearConsoleToolWindow(project);

    final VirtualFile virtualFile = currfile.getVirtualFile();
    if (virtualFile == null)
        return;

    final ProcessOutput processOutput;
    try {
        final VirtualFile child = StdLibrary.getListingModuleLocation().findChild("listing.lua");
        if (child == null)
            return;

        final String listingScript = child.getPath();
        processOutput = LuaSystemUtil.getProcessOutput(path, exePath, listingScript, virtualFile.getPath());
    } catch (final ExecutionException ex) {
        return;
    }
    if (processOutput.getExitCode() != 0)
        return;

    String errors = processOutput.getStderr();
    if (StringUtil.notNullize(errors).length() > 0) {
        LuaSystemUtil.printMessageToConsole(project, errors, ConsoleViewContentType.ERROR_OUTPUT);
        return;
    }
    String listing = processOutput.getStdout();

    final IdeView view = LangDataKeys.IDE_VIEW.getData(e.getDataContext());
    if (view == null)
        return;

    final PsiDirectory dir = view.getOrChooseDirectory();
    if (dir == null)
        return;

    final PsiFileFactory factory = PsiFileFactory.getInstance(project);
    final String listingFileName = virtualFile.getNameWithoutExtension() + "-listing.lua";

    final PsiFile existingFile = dir.findFile(listingFileName);
    if (existingFile != null)
        ApplicationManager.getApplication().runWriteAction(new Runnable() {
            @Override
            public void run() {
                existingFile.delete();
            }
        });

    final PsiFile file = factory.createFileFromText(listingFileName, LuaFileType.LUA_FILE_TYPE, listing);

    ApplicationManager.getApplication().runWriteAction(new Runnable() {
        @Override
        public void run() {
            created = dir.add(file);
        }
    });

    if (created == null)
        return;
    final PsiFile containingFile = created.getContainingFile();
    if (containingFile == null)
        return;
    final VirtualFile virtualFile1 = containingFile.getVirtualFile();
    if (virtualFile1 == null)
        return;

    OpenFileDescriptor fileDesc = new OpenFileDescriptor(project, virtualFile1);

    FileEditorManager.getInstance(project).openTextEditor(fileDesc, false);

    view.selectElement(created);

    created = null;
}

From source file:com.twitter.intellij.pants.highlighting.PantsHighlightingIntegrationTest.java

License:Apache License

@Nullable
protected Editor createEditor(@NotNull VirtualFile file) {
    final FileEditorManager instance = FileEditorManager.getInstance(myProject);
    PsiDocumentManager.getInstance(myProject).commitAllDocuments();

    Editor editor = instance.openTextEditor(new OpenFileDescriptor(myProject, file), false);
    if (editor != null) {
        editor.getCaretModel().moveToOffset(0);
        DaemonCodeAnalyzer.getInstance(myProject).restart();
    }// w  w w  . j a v a  2  s  .  c  o m
    return editor;
}

From source file:io.flutter.FlutterErrorReportSubmitter.java

License:Open Source License

@SuppressWarnings("deprecation")
@Override// w w  w. ja  va  2 s.  com
public void submitAsync(@NotNull IdeaLoggingEvent[] events, @Nullable String additionalInfo,
        @NotNull Component parentComponent, @NotNull Consumer<SubmittedReportInfo> consumer) {
    if (events.length == 0) {
        consumer.consume(new SubmittedReportInfo(null, null, SubmittedReportInfo.SubmissionStatus.FAILED));
        return;
    }

    final DataContext dataContext = DataManager.getInstance().getDataContext(parentComponent);
    Project project = PlatformDataKeys.PROJECT.getData(dataContext);
    if (project == null) {
        project = ProjectManager.getInstance().getDefaultProject();
    }

    final StringBuilder builder = new StringBuilder();

    builder.append("Please file this bug report at https://github.com/flutter/flutter-intellij/issues/new.\n");
    builder.append("\n");
    builder.append("---\n");
    builder.append("\n");

    builder.append("## What happened\n");
    builder.append("\n");
    if (additionalInfo != null) {
        builder.append(additionalInfo.trim()).append("\n");
    } else {
        builder.append("(please describe what you were doing when this exception occurred)\n");
    }
    builder.append("\n");

    builder.append("## Version information\n");
    builder.append("\n");

    // IntelliJ version
    final ApplicationInfo info = ApplicationInfo.getInstance();
    builder.append(info.getVersionName()).append(" `").append(info.getFullVersion()).append("`");

    final IdeaPluginDescriptor flutterPlugin = PluginManager.getPlugin(PluginId.getId("io.flutter"));
    //noinspection ConstantConditions
    builder.append("  Flutter plugin `").append(flutterPlugin.getVersion()).append("`");

    final IdeaPluginDescriptor dartPlugin = PluginManager.getPlugin(PluginId.getId("Dart"));
    if (dartPlugin != null) {
        //noinspection ConstantConditions
        builder.append("  Dart plugin `").append(dartPlugin.getVersion()).append("`");
    }
    builder.append("\n\n");

    final FlutterSdk sdk = FlutterSdk.getFlutterSdk(project);
    if (sdk == null) {
        builder.append("No Flutter sdk configured.\n");
    } else {
        final String flutterVersion = getFlutterVersion(sdk);
        if (flutterVersion != null) {
            builder.append(flutterVersion.trim()).append("\n");
        } else {
            builder.append("Error getting Flutter sdk information.\n");
        }
    }
    builder.append("\n");

    for (IdeaLoggingEvent event : events) {
        builder.append("## Exception\n");
        builder.append("\n");
        builder.append(event.getMessage()).append("\n");
        builder.append("\n");

        if (event.getThrowable() != null) {
            builder.append("```\n");
            builder.append(event.getThrowableText().trim()).append("\n");
            builder.append("```\n");
            builder.append("\n");

            FlutterInitializer.getAnalytics().sendException(event.getThrowable(), false);
        }
    }

    final String text = builder.toString().trim() + "\n";

    // Create scratch file.
    final ScratchRootType scratchRoot = ScratchRootType.getInstance();
    final VirtualFile file = scratchRoot.createScratchFile(project, "bug-report.md", Language.ANY, text);

    if (file != null) {
        // Open the file.
        new OpenFileDescriptor(project, file).navigate(true);
    } else {
        consumer.consume(new SubmittedReportInfo(null, null, SubmittedReportInfo.SubmissionStatus.FAILED));
    }

    consumer.consume(new SubmittedReportInfo(null, "", SubmittedReportInfo.SubmissionStatus.NEW_ISSUE));
}

From source file:net.andydvorak.intellij.lessc.ui.notifier.NotificationListenerImpl.java

License:Apache License

private void openFileInEditor(@NotNull final Notification notification, @Nullable final VirtualFile file) {
    if (file == null)
        return;/*  w ww  .j a v  a2s . co  m*/

    final FileEditorManager editorManager = FileEditorManager.getInstance(myProject);
    final Editor editor = editorManager.openTextEditor(new OpenFileDescriptor(myProject, file), true);
    final LogicalPosition logicalPosition = getLogicalPosition();

    if (editor != null && logicalPosition != null) {
        // Set correct caret position
        // See https://github.com/johnlindquist/open-source-plugins/blob/master/QuickJump/src/com/johnlindquist/quickjump/QuickJumpAction.java
        editor.getCaretModel().moveToVisualPosition(editor.logicalToVisualPosition(logicalPosition));
    }

    notification.hideBalloon();
}

From source file:org.jetbrains.android.dom.converters.CreateMissingClassQuickFix.java

License:Apache License

@Override
public void applyFix(@NotNull final Project project, @NotNull ProblemDescriptor descriptor) {
    final PsiPackage aPackage = myPackage.getElement();
    if (aPackage == null) {
        return;//w  ww. ja  v  a 2 s .  c om
    }

    final AndroidFacet facet = AndroidFacet.getInstance(myModule);
    if (facet == null) {
        return;
    }

    final List<IdeaSourceProvider> providerList = IdeaSourceProvider.getCurrentSourceProviders(facet);
    final List<VirtualFile> javaDirectories = Lists.newArrayList();
    for (IdeaSourceProvider provider : providerList) {
        javaDirectories.addAll(provider.getJavaDirectories());
    }
    final PsiDirectory[] directories = aPackage.getDirectories();
    final List<PsiDirectory> filteredDirectories = Lists.newArrayListWithExpectedSize(directories.length);
    for (PsiDirectory directory : directories) {
        for (VirtualFile file : javaDirectories) {
            if (VfsUtilCore.isAncestor(file, directory.getVirtualFile(), true)) {
                filteredDirectories.add(directory);
                break;
            }
        }
    }

    final PsiDirectory directory;
    switch (filteredDirectories.size()) {
    case 0:
        directory = null;
        break;
    case 1:
        directory = filteredDirectories.get(0);
        break;
    default:
        // There are several directories, present a dialog window for a user to choose a particular destination directory
        final PsiDirectory[] array = filteredDirectories.toArray(new PsiDirectory[filteredDirectories.size()]);
        directory = DirectoryChooserUtil.selectDirectory(aPackage.getProject(), array,
                filteredDirectories.get(0), "");
    }

    if (directory == null) {
        return;
    }

    final RunResult<PsiClass> result = new WriteCommandAction<PsiClass>(project) {
        @Override
        protected void run(@NotNull Result<PsiClass> result) throws Throwable {
            // Create a new class
            final PsiClass psiClass = JavaDirectoryService.getInstance().createClass(directory, myClassName);

            final JavaPsiFacade facade = JavaPsiFacade.getInstance(project);

            // Add a base class to "extends" list
            final PsiReferenceList list = psiClass.getExtendsList();
            if (list != null && myBaseClassFqcn != null) {
                final PsiClass parentClass = facade.findClass(myBaseClassFqcn,
                        GlobalSearchScope.allScope(project));
                if (parentClass != null) {
                    list.add(facade.getElementFactory().createClassReferenceElement(parentClass));
                }
            }

            // Add a "public" modifier, which is absent by default. Required because classes references in AndroidManifest
            // have to point to public classes.
            final PsiModifierList modifierList = psiClass.getModifierList();
            if (modifierList != null) {
                modifierList.setModifierProperty(PsiModifier.PUBLIC, true);
            }

            result.setResult(psiClass);
        }
    }.execute();

    PsiClass aClass = result.getResultObject();
    OpenFileDescriptor fileDescriptor = new OpenFileDescriptor(project,
            aClass.getContainingFile().getVirtualFile());
    FileEditorManager.getInstance(project).openEditor(fileDescriptor, true);
}

From source file:org.jetbrains.idea.maven.project.actions.MavenOpenOrCreateFilesAction.java

License:Apache License

@Override
public void actionPerformed(AnActionEvent e) {
    final Project project = MavenActionUtil.getProject(e.getDataContext());
    final List<File> files = getFiles(e);
    final List<VirtualFile> virtualFiles = collectVirtualFiles(files);

    if (files.size() == 1 && virtualFiles.isEmpty()) {
        new WriteCommandAction(project, e.getPresentation().getText()) {
            @Override/*from   w  w w  .  j  a v a 2 s .  co m*/
            protected void run(Result result) throws Throwable {
                File file = files.get(0);
                try {
                    VirtualFile newFile = VfsUtil.createDirectoryIfMissing(file.getParent())
                            .createChildData(this, file.getName());
                    virtualFiles.add(newFile);
                    MavenUtil.runFileTemplate(project, newFile, getFileTemplate());
                } catch (IOException ex) {
                    MavenUtil.showError(project, "Cannot create " + file.getName(), ex);
                }
            }
        }.execute();
        return;
    }

    for (VirtualFile each : virtualFiles) {
        new OpenFileDescriptor(project, each).navigate(true);
    }
}

From source file:org.jetbrains.idea.maven.utils.MavenUtil.java

License:Apache License

private static void runOrApplyFileTemplate(Project project, VirtualFile file, String templateName,
        Properties properties, Properties conditions, boolean interactive) throws IOException {
    FileTemplateManager manager = FileTemplateManager.getInstance();
    FileTemplate fileTemplate = manager.getJ2eeTemplate(templateName);
    Properties allProperties = manager.getDefaultProperties();
    if (!interactive) {
        allProperties.putAll(properties);
    }/*from   w  w w.j  a v  a2 s  .  c o  m*/
    allProperties.putAll(conditions);
    String text = fileTemplate.getText(allProperties);
    Pattern pattern = Pattern.compile("\\$\\{(.*)\\}");
    Matcher matcher = pattern.matcher(text);
    StringBuffer builder = new StringBuffer();
    while (matcher.find()) {
        matcher.appendReplacement(builder, "\\$" + matcher.group(1).toUpperCase() + "\\$");
    }
    matcher.appendTail(builder);
    text = builder.toString();

    TemplateImpl template = (TemplateImpl) TemplateManager.getInstance(project).createTemplate("", "", text);
    for (int i = 0; i < template.getSegmentsCount(); i++) {
        if (i == template.getEndSegmentNumber()) {
            continue;
        }
        String name = template.getSegmentName(i);
        String value = "\"" + properties.getProperty(name, "") + "\"";
        template.addVariable(name, value, value, true);
    }

    if (interactive) {
        OpenFileDescriptor descriptor = new OpenFileDescriptor(project, file);
        Editor editor = FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
        editor.getDocument().setText("");
        TemplateManager.getInstance(project).startTemplate(editor, template);
    } else {
        VfsUtil.saveText(file, template.getTemplateText());

        PsiFile psiFile = PsiManager.getInstance(project).findFile(file);
        if (psiFile != null) {
            new ReformatCodeProcessor(project, psiFile, null, false).run();
        }
    }
}