在过去几年中,JetBrains的IntelliJ很快成为Java开发人员的顶级IDE。使IntelliJ对Java开发人员如此有吸引力的一个特性是使用插件扩展和创建新功能的能力。在本教程中,我们将介绍如何编写IntelliJ插件来演示扩展IDE的几种方法。
Intellij插件按照功能可分四类:
使用 Plugin DevKit( https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/using_dev_kit.html )来创建工程,DevKit提供了自定义SDK类型和一组用于在IDE中构建插件的操作
在Intellij的菜单栏,选择 File | New | Project, 在 New Project 框里选择 IntelliJ PLatform Plugin
在project SDK选项框选择合适的Intellij SDK,然后下一步,填上project name,完成,就创建好一个Intellij plugin 工程了。
创建自定义Action
创建自定义的action,需要继承抽象类AnAction,并且需要重写方法 AnAction.update() 和 AnAction.actionPerformed() :
actionPerformed()方法
在该方法中,我们通过getSelectedCode()方法拿到用户选择的文本,通过刚发getLanguageTag()获取当前文本语言,比如java,js,go等。然后通过getURL()方法组装url,最后通过BrowserUtil.browse(url) 打开浏览器,并访问给的url。在我们demo里面,我们将用选择的文本在baidu里面进行搜索。
获取Editor中选择的文本
你需要使用SelectionModel对象获取选择的文本
获取当前文件的语言
从event中通过CommonDataKeys.PSI_FILE key获取到PsiFile对象,然后再从PsiFile中获取到Language。
有两种方式可以注册我们自定义的事件:1. plugin.xml中配置,2.代码中注册
在plugin.xml文件中注册事件:
在Idea中运行或者debug插件是非常简单的一件事
配置
运行
结果