Intellij 插件开发在控制台窗口中打印

Joh*_*ith 2 plugins action window intellij-idea gradle

我是 Intellij Idea 插件开发的新手。所以我正在开发一个简单的插件来在工具窗口(类似于控制台窗口)中打印字符串值!网上搜的例子比较少!我对 Intellij 操作系统有一点了解,但无法弄清楚如何在plugin.xml 中注册必要的操作以在工具窗口中打印字符串!

以下是我的代码

import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;

    public class A extends AnAction {

        @Override
        public void actionPerformed(AnActionEvent e) {
           String x="Hello how are you?";
        }
    }
Run Code Online (Sandbox Code Playgroud)

如何在工具窗口中打印字符串 x?

Mik*_*ike 5

控制台窗口不能单独存在,它们必须与工具窗口绑定。这是一个简单的例子。

首先在 XML 中为您的插件创建一个 ToolWindow:

<extensions defaultExtensionNs="com.intellij">
  <!-- Add your extensions here -->
  <toolWindow id="MyPlugin" 
              anchor="bottom"
              icon="iconfile.png"
              factoryClass="com.intellij.execution.dashboard.RunDashboardToolWindowFactory"></toolWindow>
</extensions>
Run Code Online (Sandbox Code Playgroud)

然后在您的操作中,您可以抓住该工具窗口的句柄并惰性地创建一个控制台视图,然后在其中添加文本:

  ToolWindow toolWindow = ToolWindowManager.getInstance(e.getProject()).getToolWindow("MyPlugin");
  ConsoleView consoleView = TextConsoleBuilderFactory.getInstance().createBuilder(e.getProject()).getConsole();
  Content content = toolWindow.getContentManager().getFactory().createContent(consoleView.getComponent(), "MyPlugin Output", false);
  toolWindow.getContentManager().addContent(content);
  consoleView.print("Hello from MyPlugin!", ConsoleViewContentType.NORMAL_OUTPUT);
Run Code Online (Sandbox Code Playgroud)

一些注意事项:

  1. 默认情况下,您的新工具窗口可能不可见,因此您可能需要从“视图”->“工具窗口”菜单激活它。

  2. 我们曾经RunDashboardToolWindowFactory创建新的工具窗口,因此它将采用运行窗口的布局。您可以使用任何实现ToolWindowFactory(包括您自己的自定义类)来代替它。

在此输入图像描述

  • 迈克,这很奇怪,但对我来说它不起作用...此外,在使用我的插件启动 IDEA 后,我在“视图 -&gt; 工具窗口”菜单中没有“运行”,只有在按下绿色按钮“运行”后才会出现它看起来像一个播放按钮...我做错了什么? (2认同)