maven-插件开发(idea)-3

 public void actionPerformed(AnActionEvent e) {
        Project project = e.getProject();
        VirtualFile file1 = e.getData(PlatformDataKeys.VIRTUAL_FILE);
        VirtualFile file2 = getSelectedFileInEditor(e);
        if (file1 != null && file2 != null && file1.getFileType() == file2.getFileType()) {
            String content1 = Objects.requireNonNull(FileDocumentManager.getInstance().getDocument(file1)).getText();
            String content2 = Objects.requireNonNull(FileDocumentManager.getInstance().getDocument(file2)).getText();
            DiffContentFactory factory = DiffContentFactory.getInstance();
            DiffContent diffContent1 = factory.create(project, content1);
            DiffContent diffContent2 = factory.create(project, content2);

            // 创建 SimpleDiffRequest,并将 DiffContent 添加到其中
            // 创建 SimpleDiffRequest,并将 DiffContent 添加到其中
            SimpleDiffRequest request = new SimpleDiffRequest("title", diffContent1, diffContent2, "file1", "file2");

            // 使用 DiffManager 显示比较结果
            DiffManager.getInstance().showDiff(null, request);

//            JPanel panel = (JPanel) DiffManager.getInstance().createRequestPanel(project, null, null);


//            // 创建自定义对话框
//            DialogBuilder builder = new DialogBuilder();
//
//            // 创建要对比的两个字符串
//            String leftContent = "Hello, world!";
//            String rightContent = "Hello, IntelliJ IDEA!";
//            // 设置对话框标题和内容面板
//            builder.setTitle("My Dialog");
//            JPanel contentPanel = new JPanel();
//            JTextArea leftTextArea = new JTextArea(leftContent);
//            JTextArea rightTextArea = new JTextArea(rightContent);
//            contentPanel.add(leftTextArea);
//            contentPanel.add(rightTextArea);
//            builder.setCenterPanel(contentPanel);
//
//            // 添加“确定”按钮
//            builder.addOkAction().setText("OK");
//
//            // 添加“取消”按钮
//            builder.addCancelAction().setText("Cancel");
//
//            // 显示对话框,并在关闭前进行 Diff 请求
//            // 显示对话框,并在关闭前进行 Diff 请求
//            if (builder.show() == DialogWrapper.OK_EXIT_CODE) {
//                leftContent = leftTextArea.getText();
//                rightContent = rightTextArea.getText();
//                SimpleDiffRequest newDiffRequest = new SimpleDiffRequest("Diff Title",
//                        DiffContentFactory.getInstance().create(leftContent),
//                        DiffContentFactory.getInstance().create(rightContent),
//                        "Left Content", "Right Content");
//                DiffManager.getInstance().showDiff(null, newDiffRequest);
//            }

        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值