IntellJj插件开发 - 所选java文件的源代码

时间:2015-09-03 14:01:05

标签: intellij-plugin

我刚开始在IntelliJ插件开发中冒险。 我需要做的是根据所选java文件的代码生成一些代码。 我已经设置了environemt并且我可以成功运行我的插件,我只能在java文件的上下文菜单上显示我的操作:我不知道怎么做是如何读取所选文件的代码,其中对于“阅读”我指的是确定领域,方法等。 我可以很好地使用反射api,但是如何选择加载类?

这是显示仅适用于java文件的菜单项的当前代码

public class MyConditionalAction extends AnAction {
    public void actionPerformed(AnActionEvent e) {
        DataContext dataContext = e.getDataContext();
        VirtualFile virtualFile = PlatformDataKeys.VIRTUAL_FILE.getData(dataContext);
        Project project = e.getData(PlatformDataKeys.PROJECT);
        //show popup with file path
        Messages.showMessageDialog(project, virtualFile.getPath(), "Information", Messages.getInformationIcon());
    }

    @Override
    public void update(AnActionEvent e) {
        super.update(e);
        determineVisibility(e);

    }

    private void determineVisibility(AnActionEvent e) {
        DataContext dataContext = e.getDataContext();
        VirtualFile virtualFile = PlatformDataKeys.VIRTUAL_FILE.getData(dataContext);
        e.getPresentation().setVisible(isJava(virtualFile));
    }

    private boolean isJava(VirtualFile file) {
        if (file == null) {
            return false;
        }
        return JavaFileType.INSTANCE.equals(file.getFileType());
    }

感谢任何帮助

1 个答案:

答案 0 :(得分:2)

您不能使用反射,因为正在编辑的类未编译且未加载到IntelliJ IDEA JVM中。相反,您需要使用PSI API。

DefaultComboBoxModel