activate/deactivate Intellij 插件开发中特定文件类型的插件选项
activate/deactivate plugin option for particular file type in Intellij plugin development
我正在为 Intellij 开发一个插件,它有很多动作。
我想在默认情况下禁用某些操作,它们只会对某些文件类型激活。
例如当我右键单击 .java 文件时,它应该被停用或禁用。但是,当我右键单击 .xml 文件时,应该激活或启用该特定插件操作。
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());
}
}
我正在为 Intellij 开发一个插件,它有很多动作。
我想在默认情况下禁用某些操作,它们只会对某些文件类型激活。
例如当我右键单击 .java 文件时,它应该被停用或禁用。但是,当我右键单击 .xml 文件时,应该激活或启用该特定插件操作。
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());
}
}