一个简单的 IntelliJ IDEA 插件开发示例

一个简单的 IntelliJ IDEA 插件示例是创建一个将选定文本转换为大写或小写的工具。以下是如何实现这个插件的步骤:

  1. 准备工作:

    • 安装 IntelliJ IDEA Community Edition 或 Ultimate Edition。
    • 确保已安装 Java Development Kit (JDK)。
  2. 创建插件项目:

    • 打开 IntelliJ IDEA,选择 "Create New Project"。
    • 选择 "IntelliJ Platform Plugin",然后点击 "Next"。
    • 输入项目名称(例如,"TextCaseConverter"),然后点击 "Finish"。
  3. 编写插件代码:

    • 在 "src/main/java" 目录下创建一个新的 Java 类(例如,"TextCaseConverterAction")。
    • 让这个类继承 "com.intellij.openapi.actionSystem.AnAction" 并实现 "actionPerformed" 方法。
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.util.text.StringUtil;
import org.jetbrains.annotations.NotNull;

/**
 * @author aliuge
 */
public class TextCaseConverterAction extends AnAction {
    @Override
    public void actionPerformed(@NotNull AnActionEvent event) {
        Project project = event.getProject();
        Editor editor = event.getRequiredData(com.intellij.openapi.actionSystem.CommonDataKeys.EDITOR);

        // 获取选中的文本
        String selectedText = editor.getSelectionModel().getSelectedText();

        if (selectedText == null || selectedText.isEmpty()) {
            Messages.showErrorDialog(project, "请先选择要转换的文本。", "未选择文本");
            return;
        }

        // 显示对话框
        TextCaseConverterDialog dialog = new TextCaseConverterDialog(selectedText);
        if (dialog.showAndGet()) {
            // 获取转换后的文本并替换选中文本
            String newText = dialog.getConvertedText();
            editor.getDocument().replaceString(editor.getSelectionModel().getSelectionStart(), editor.getSelectionModel().getSelectionEnd(), newText);
        }
    }
}

创建操作界面:

  • 在 "src/main/java" 目录下创建一个新的 Java 类(例如,"TextCaseConverterDialog")。
  • 让这个类继承 "com.intellij.openapi.ui.DialogWrapper" 并实现 "createCenterPanel" 方法。

import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.LabeledComponent;
import org.jetbrains.annotations.Nullable;

import javax.swing.*;
import java.awt.*;

/**
 * @author aliuge
 */
public class TextCaseConverterDialog extends DialogWrapper {

    private final String selectedText;
    private String convertedText;

    public TextCaseConverterDialog(String selectedText) {
        super(true);
        this.selectedText = selectedText;
        init();
        setTitle("文本大小写转换");
    }

    @Nullable
    @Override
    protected JComponent createCenterPanel() {
        JPanel panel = new JPanel(new BorderLayout());
        JComboBox<String> comboBox = new JComboBox<>(new String[]{"大写", "小写"});

        comboBox.addActionListener(e -> {
            String choice = (String) comboBox.getSelectedItem();
            if ("大写".equals(choice)) {
                convertedText = selectedText.toUpperCase();
            } else {
                convertedText = selectedText.toLowerCase();
            }
        });

        LabeledComponent<JComboBox<String>> labeledComponent = LabeledComponent.create(comboBox, "转换方式");

        panel.add(labeledComponent, BorderLayout.NORTH);
        return panel;
    }

    public String getConvertedText() {
        return convertedText;
    }
}

在插件的 XML 配置文件中注册新的动作(`src/main/resources/META-INF/plugin.xml`)

<actions>
    <action id="TextCaseConverterAction"
            class="com.example.textcaseconverter.TextCaseConverterAction"
            text="文本大小写转换"
            description="将选中的文本转换为大写或小写">
        <add-to-group group-id="EditorPopupMenu" anchor="last"/>
    </action>
</actions>
  1. 编译和运行插件:
    • 找到Gradle管理面板, 选择项目进行 "build" 以编译项目。
    • 选择Run Configurations > Run Plugin,将启动一个新的 IntelliJ IDEA 实例,里面会包含新开发的插件。
  2. 打包插件并安装:
    • 在 IntelliJ IDEA 中,选择 "Build" > "Prepare Plugin Module for Deployment"。
    • 在项目的 "build/distributions" 目录下会生成一个 ZIP 文件,用户可以通过 "Settings" > "Plugins" > "Install plugin from disk..." 选项在其 IntelliJ IDEA 安装中安装该插件。

现在,你可以在新的 IntelliJ IDEA 实例中打开或创建一个文件,选择一些文本,然后右键单击并选择 "文本大小写转换" 以测试插件。一个对话框会显示让你选择要将选定的文本转换为大写还是小写。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值