Java Intellij IDEA插件开发:无法获取IntentionAction的进度指示器

Java Intellij IDEA插件开发:无法获取IntentionAction的进度指示器,java,user-interface,intellij-idea,intellij-plugin,Java,User Interface,Intellij Idea,Intellij Plugin,在我的自定义IntellIJ IDEA插件中运行自定义IntentionAction时,我想显示一个进度条 但是,无论我做什么,它都不会显示。为了测试问题是否存在于意图操作,我将代码复制粘贴到操作的一个简单实现中。整个班级看起来都是这样的: public class HelloAction extends AnAction { public HelloAction() { super("Hello"); } public void actionP

在我的自定义IntellIJ IDEA插件中运行自定义
IntentionAction
时,我想显示一个进度条

但是,无论我做什么,它都不会显示。为了测试问题是否存在于
意图操作
,我将代码复制粘贴到
操作
的一个简单实现中。整个班级看起来都是这样的:

    public class HelloAction extends AnAction {
    public HelloAction() {
        super("Hello");
    }

    public void actionPerformed(AnActionEvent event) {
        Project project = event.getData(CommonDataKeys.PROJECT);
        ProgressManager.getInstance().run(new Task.Modal(project, "daf", false) {
            public void run(ProgressIndicator indicator) {
                indicator.setText("This is how you update the indicator");
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {}
                indicator.setFraction(0.5);  // halfway done
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {}
            }
        });
        Messages.showMessageDialog(project, "Hello world!", "Greeting", Messages.getInformationIcon());
    }
}
而且它工作得很好。当我在
IntentionAction
中使用相同的代码时,不会显示任何内容

public class GenerateIntentionAction extends PsiElementBaseIntentionAction implements IntentionAction {
...
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
        ProgressManager.getInstance().run(new Task.Modal(project, "daf", false) {
            public void run(ProgressIndicator indicator) {
                indicator.setText("This is how you update the indicator");
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {}
                indicator.setFraction(0.5);  // halfway done
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {}
            }
        });

我尝试运行call
runwithprogressynchronously
而不是
run
,尝试将
任务
设置为模态和
背景
,但均无效。我不知道有什么不对,除了
ProgressIndicator
内部
intentitionaction
始终是
EmptyProgressIndicator
如果在
WriteAction
内部调用了意图操作,则无法从那里显示模式UI。重写
startInWriteAction
并返回
false
可能会有所帮助