在Intellij插件开发中激活/取消激活特定文件类型的插件选项

时间:2015-05-18 11:36:06

标签: java plugins intellij-idea intellij-plugin

我正在为Intellij开发一个插件,它有很多动作。

我想默认禁用某些操作,它们只会针对某些文件类型激活。

e.g。当我右键单击.java文件时,应该停用或禁用它。但是,当我右键单击.xml文件时,应激活或启用该特定插件操作。

1 个答案:

答案 0 :(得分:3)

public class YourAction extends DumbAwareAction {
    ...
    @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(isXml(virtualFile));
    }

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