链接
在开始编写令人难以置信且超级有用的插件之前,您应该先阅读一些内容。 以下是值得一游的地方列表:
入门 -应该开始的地方。 创建新插件的最基本介绍。
插件开发的基础知识 –第二页类似于上一页,但是可以在其中找到一些有趣的知识。
插件开发常见问题解答 –最好的解决方案,为您的问题提供就绪的解决方案和答案
开放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共享。
一些有用的代码示例
几乎每个插件的源代码中都可能存在一些元素。 为了减轻您使用谷歌搜索或尝试找出问题的麻烦,这里有一些我认为最受欢迎的简短示例。
获取当前项目,当前文件等
您的插件操作应从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的正确值。 当然,解决方案就在我眼前。 如果在项目视图中按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