控制台中的 Intellij 插件开发打印 window
Intellij plugin development print in console window
我是 Intellij Idea 插件开发的新手。所以我正在开发一个简单的插件来在工具window(类似于控制台window)中打印字符串值!我在网上搜索的例子少了!我对 Intellij 动作系统略有了解,但无法弄清楚如何在 plugin.xml 中注册必要的动作以在工具 window!
中打印字符串
以下是我的代码
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?";
}
}
如何在工具中打印字符串 x window?
控制台 windows 不能单独存在,它们必须绑定到工具 window。这是一个简单的例子。
首先在 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>
然后在您的操作中,您可以获取该工具的句柄 window 并懒惰地创建一个控制台视图,然后在其中添加您的文本:
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);
一些注意事项:
默认情况下您的新工具 window 可能不可见,因此您可能需要从视图 -> 工具 Windows 菜单中激活它。
我们使用 RunDashboardToolWindowFactory
来创建我们的新工具 window,因此它将采用 运行 window 的布局。您可以使用 ToolWindowFactory
的任何实现(包括您自己的自定义 class)代替它。
应以这种方式注册操作(在 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>
此外,请确保您的操作在包内,否则它可能不是found/called。
RunDashboardToolWindowFactory
不再存在于最新的智能社区代码库中。我唯一的参考是 https://github.com/JetBrains/intellij-sdk-docs/tree/master/code_samples/tool_window
我是 Intellij Idea 插件开发的新手。所以我正在开发一个简单的插件来在工具window(类似于控制台window)中打印字符串值!我在网上搜索的例子少了!我对 Intellij 动作系统略有了解,但无法弄清楚如何在 plugin.xml 中注册必要的动作以在工具 window!
中打印字符串以下是我的代码
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?";
}
}
如何在工具中打印字符串 x window?
控制台 windows 不能单独存在,它们必须绑定到工具 window。这是一个简单的例子。
首先在 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>
然后在您的操作中,您可以获取该工具的句柄 window 并懒惰地创建一个控制台视图,然后在其中添加您的文本:
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);
一些注意事项:
默认情况下您的新工具 window 可能不可见,因此您可能需要从视图 -> 工具 Windows 菜单中激活它。
我们使用
RunDashboardToolWindowFactory
来创建我们的新工具 window,因此它将采用 运行 window 的布局。您可以使用ToolWindowFactory
的任何实现(包括您自己的自定义 class)代替它。
应以这种方式注册操作(在 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>
此外,请确保您的操作在包内,否则它可能不是found/called。
RunDashboardToolWindowFactory
不再存在于最新的智能社区代码库中。我唯一的参考是 https://github.com/JetBrains/intellij-sdk-docs/tree/master/code_samples/tool_window