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

时间:2018-08-22 17:21:08

标签: gradle intellij-idea plugins window action

我是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?";
        }
    }

如何在工具窗口中打印String x?

3 个答案:

答案 0 :(得分:2)

控制台窗口不能仅自身存在,而必须绑定到工具窗口。这是一个简单的例子。

首先为您的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>

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

  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);

一些注意事项:

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

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

enter image description here

答案 1 :(得分:0)

应该以这种方式(在plugin.xml内部)注册动作:

    <actions>
    <group id="MyPlugin.TopMenu"
           text="_MyPlugin"
           description="MyPlugin Toolbar Menu">
        <add-to-group group-id="MainMenu" anchor="last"/>
        <action id="MyAction"
                class="actions.MyAction"
                text="_MyAction"
                description="MyAction"/>
    </group>
</actions>

此外,请确保您的操作位于包中,否则可能无法找到/调用。

答案 2 :(得分:0)

RunDashboardToolWindowFactory 不再存在于最新的 intellij-community 代码库中。我唯一的参考是 https://github.com/JetBrains/intellij-sdk-docs/tree/master/code_samples/tool_window