一个简单的 IntelliJ IDEA 插件示例是创建一个将选定文本转换为大写或小写的工具。以下是如何实现这个插件的步骤:
-
准备工作:
- 安装 IntelliJ IDEA Community Edition 或 Ultimate Edition。
- 确保已安装 Java Development Kit (JDK)。
-
创建插件项目:
- 打开 IntelliJ IDEA,选择 "Create New Project"。
- 选择 "IntelliJ Platform Plugin",然后点击 "Next"。
- 输入项目名称(例如,"TextCaseConverter"),然后点击 "Finish"。
-
编写插件代码:
- 在 "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>
- 编译和运行插件:
- 找到Gradle管理面板, 选择项目进行 "build" 以编译项目。
- 选择Run Configurations > Run Plugin,将启动一个新的 IntelliJ IDEA 实例,里面会包含新开发的插件。
- 打包插件并安装:
- 在 IntelliJ IDEA 中,选择 "Build" > "Prepare Plugin Module for Deployment"。
- 在项目的 "build/distributions" 目录下会生成一个 ZIP 文件,用户可以通过 "Settings" > "Plugins" > "Install plugin from disk..." 选项在其 IntelliJ IDEA 安装中安装该插件。
现在,你可以在新的 IntelliJ IDEA 实例中打开或创建一个文件,选择一些文本,然后右键单击并选择 "文本大小写转换" 以测试插件。一个对话框会显示让你选择要将选定的文本转换为大写还是小写。