为IntelliJ IDEA开发插件-一些有用的技巧和链接

当我开始考虑为IntelliJ IDEA编写我的第一个插件时,最大的问题是缺乏一个好的综合指南,这些指南如何做以及如何很好地汇总在一个地方。 因此,本文将以书面形式收集我的个人经历,链接和其他资源,我认为在将Share with Pastie插件发布到公共IntelliJ存储库的过程中,我发现这些有用和值得注意的资源

链接

在开始编写令人难以置信且超级有用的插件之前,您应该先阅读一些内容。 以下是值得一游的地方列表:

入门 -应该开始的地方。 创建新插件的最基本介绍。

插件开发的基础知识 –第二页与上一页相似,但是可以在其中找到一些有趣的知识。

插件开发常见问题解答 –最好的解决方案,为您的问题提供现成的解决方案和答案

开放API论坛 -如果您确实遇到问题,可以去的地方

给我看代码

上面链接中的资源很有帮助,但是迟早您将不得不深入研究代码来检查某些功能或如何实现某些功能。 有两种方法可以分析IntelliJ IDEA本身的源代码:

打开控制台并输入:git clone git://git.jetbrains.org/idea/community.git idea

在GrepCode上查看IntelliJ IDEA 10源代码

我已经使用了两种方法:Git存储库签出整个项目,在IDEA中打开它并查找用法,以及GrepCode快速查找单个代码片段的外观。

向他人学习

有时您可能想添加一些功能,该功能与您在别人编写的插件中看到的功能非常相似。 如果幸运的话,可以使用此插件的源代码。 您唯一需要做的就是访问http://plugins.intellij.net/?idea ,找到具有类似功能的插件,并检查其源代码是否公开可用。 这就是我找到添加绿色气球的方式的消息,该消息表示已成功将所选代码片段与Pastie共享。

一些有用的代码示例

几乎每个插件的源代码中都可能存在一些元素。 为了减轻您使用Google搜索或尝试找出问题的烦恼,以下是我认为最受欢迎的两个简短示例。

获取当前项目,当前文件等

您的插件操作应从IntelliJ OpenAPI扩展AnAction抽象类。 传递给actionPerformed方法的唯一参数是AnActionEvent。 从该对象可以访问各个地方:

Project currentProject = DataKeys.PROJECT.getData(actionEvent.getDataContext());
VirtualFile currentFile = DataKeys.VIRTUAL_FILE.getData(actionEvent.getDataContext());
Editor editor = DataKeys.EDITOR.getData(actionEvent.getDataContext());

// and so on...

可以在DataKeys类(及其父级)常量列表中找到以这种方式可用的所有位置的列表。

气球上显示信息或错误消息

这种弹出窗口对于将反馈消息传达给用户非常有用。 它可以是信息消息或错误/警告。 信息的默认颜色为绿色,错误的颜色为红色,警告的颜色为橙色。 在“与Pastie共享”中,我使用它来通知所选文本已成功发送到Pastie,并且链接正在剪贴板中等待。

但是在显示气球之前,我们需要指定一个放置位置。 在我的插件中,它是StatusBar(IDEA GUI中的最低元素):

StatusBar statusBar = WindowManager.getInstance()
                        .getStatusBar(DataKeys.PROJECT.getData(actionEvent.getDataContext()));

然后我们可以准备气球并显示它:

JBPopupFactory.getInstance()
                .createHtmlTextBalloonBuilder(htmlText, messageType, null)
                .setFadeoutTime(7500)
                .createBalloon()
                .show(RelativePoint.getCenterOf(statusBar.getComponent()),
                                                 Balloon.Position.atRight);

一些琐事

插件开发套件

最重要的是下载或激活名为Plugin DevKit的插件,这将允许在开发过程中运行和调试您自己的插件。 这似乎非常琐碎,但您可能已停用了此插件(例如我 :) )或将其删除以加快启动时间。

UI设计师

如果您打算使用其他窗口,弹出窗口等开发插件,则名为UI Designer的插件非常方便。 它与NetBeans的GUI构建器非常相似,它允许您通过拖动,拖放和调整组件大小来创建Swing面板。

组和动作ID

当我在IntelliJ IDEA中的一个可用菜单中寻找合适的位置来显示我的操作时,我遇到了一个包含组ID和操作ID列表的页面该页面可以帮助我配置插件。 但是此页面似乎真的过时了,因此我尝试寻找另一种方法来确定这些ID的正确值。 当然,解决方案就在我眼前。 如果在项目视图中按Alt +插入,我们将看到一个菜单,用于创建多个新对象。 其中之一就是动作。 单击它之后,我们将看到一个非常友好的动作创建者,如下所示。 当然,它包含可用组和操作的列表,以将我们的插件菜单项放在它们旁边。

正确的VM内存设置

接下来是将运行/调试配置配置为正常运行,因为在开发模式下启动插件时,可能会遇到冻结(具体取决于硬件设置(主要是可用内存)和IntelliJ IDEA设置)(最常见的是在重建索引时崩溃)。

为避免此类问题,您应该在“运行/调试配置”窗口中配置内存设置,并添加适当的虚拟机参数。 对我来说-Xms256m -XX:PermSize = 128m -XX:MaxPermSize = 512m效果很好。

结束

因此,这是我有关创建自己的IntelliJ IDEA插件的经验,技巧和想法的列表。 我希望您觉得它有用,并且您的插件将使我们(开发人员)更加高效,并更快,质量更好地交付代码 :) 我的朋友说:“如果我知道如何为IDEA创建插件,我将每三周建立一个新插件,因为我一直在不断寻求改善工作流程的新思路”,因此也许在阅读了这篇文章之后至少开始了插件开发过程会更容易。

参考: 为IntelliJ IDEA开发插件–一些有用的技巧和链接,来自Code Hard Go Pro博客上的JCG合作伙伴 Tomasz Dziurko。


翻译自: https://www.javacodegeeks.com/2012/07/developing-plugin-for-intellij-idea.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值