仅用于记录插件开发时踩的坑

接口介绍

AnAction 是 Intellij Idea SDK 提供的按钮接口实现下的抽象类,通过继承此类,可以轻易的实现符合 Intellij UI 设计风格的自定义按钮组件。
Intellij SDK 中就内置了大量 AnAction 子类,下面是自定义实现的主要重写方法:

1
2
// 按钮点击时执行
public abstract void actionPerformed(@NotNull AnActionEvent e);

拓展子类

ToggleAction

用于表示具有选定状态,且在执行(点击按钮)时切换其选定状态的动作。如控制台日志滚动时的自动换行按钮,以及滚动跟随按钮。

1
2
3
4
5
// 判断按钮是否被选中
public abstract boolean isSelected(@NotNull AnActionEvent e);

// 设置按钮何时被设置为选中状态
public abstract void setSelected(@NotNull AnActionEvent e, boolean state);

辅助类

ActionToolbar

工具栏,用于操作控制台的一组按钮。
在 Git 面板,如下:
image.png

创建方法

ActionManager#createActionToolbar(String, ActionGroup, boolean)

1
2
3
4
5
6
7
8
9
10
11
private void createToolbar() {
// 创建一个按钮组
final DefaultActionGroup actions = new DefaultActionGroup();
// 通过 ConsoleView#createConsoleActions() 方法创建默认按钮
actions.addAll(consoleView.createConsoleActions());
// 创建工具栏
ActionToolbar actionToolbar = ActionManager.getInstance()
.createActionToolbar(ActionPlaces.TOOLBAR, actions, false);
// 添加到控制台
consoleView.getComponent().add(actionToolbar.getComponent());
}

ConsoleViewImpl#createConsoleActions() 中提供如下按钮组
image.png

注意事项

ConsoleView#createConsoleActions 中需要 Editor 组件被初始化,因此需要先执行 ConsoleView#getComponent 方法。

评论