IntelliJ IDEA插件

一般来说,开发人员开发的IntelliJ平台插件主要分为如下几类:



自定义编程语言的支持:包括语法高亮、文件类型识别、代码格式化、代码查看和自动补全等等。这类插件包括.gitignore,.shell这些。
框架继承:其实就是类似基于IntelliJ开发出另一个IDEA,比如AndroidStudio就是通过将Android SDK整合到了IntelliJ IDEA当中。比如还可以将Spring、Struts等框架集成到IDEA中,方便用户在IDEA使用使用特定的框架更加的方便
工具集成:对于IDEA定制一些个性化或者是实用的工具,比如lombok和translation插
附加UI:对于标准的UI界面进行修改,如在编辑框中加入一个背景图片等等。
IDEA中提供的用于进行插件开发的接口非常多,本文主要介绍几个开发时常见的接口和类。



创建plugin工程
目前来说,IDEA插件开发有两种模式,第一种是直接在IDEA中创建插件开发的项目,第二种是使用Gradle来构建Intellij插件。

在创建项目时选择IntelliJ Platform Plugin
Project SDK需要选择插件开发特有的SDK(注意不是JDK),没有相应的SDK需要new一个
可以根据自己需要开发的插件选择相应的库和框架



使用Gradle来构建Intellij插件
Gradle的好处就不多说了,已经完全占领了Android的构建编译。使用Gradle来构建Intellij插件需要添加官方的插件支持。



创建好的Gradle项目中会出现一堆与Gradle相关的文件夹和文件,这个时候只需要关注build.gradle即可。



这时我们需要在build.gradle中新增相关的依赖,让项目能够支持构建IDEA插件。步骤如下:



1.添加 IntelliJ build plugins仓库地址



plugins {
id ‘org.jetbrains.intellij’ version ‘0.3.1’
}



2.使用IntelliJ IDEA的插件



apply plugin: “org.jetbrains.intellij”
apply plugin: ‘java’
apply plugin: ‘idea’



3.设置运行插件的IntelliJ的版本以及沙箱地址



intellij {
version = ‘2017.3’ //调试我们插件的版本
sandboxDirectory = project.rootDir.canonicalPath + “/.sandbox” //插件生成的临时文件的地址,可以省略
}



设置好了后,登陆Gradle构建成功即可



4.需要在resources目录下新建META-INF/plugin.xml文件。即完成了插件项目的构建



两种创建方式的差异
项目本身的差异
SDK的差异:
使用IDEA创建的插件项目中SDK为 IDEA插件专用的SDK
使用Gradle编译的插件项目SDK为 JDK
IDEA.iml文件中type不同
使用IDEA创建的插件项目中xxx.iml中type为PLUGIN_MODULE
使用Gradle编译的插件项目中xxx.iml中type为JAVA_MODULE



https://blog.csdn.net/ExcellentYuXiao/article/details/80273109



http://www.360doc.com/content/14/1107/13/16650130_423318501.shtml



https://www.cnblogs.com/hama1993/p/12034514.html



https://www.jianshu.com/p/722841c6d0a9
https://download.csdn.net/download/xieyuneng/6840749



https://www.jianshu.com/p/0c0f17679bc3
https://blog.csdn.net/wusj3/article/details/81092332
https://plugins.jetbrains.com/idea
https://cloud.tencent.com/developer/article/1348733
https://www.mcbbs.net/thread-858294-1-1.html
https://blog.jetbrains.com/phpstorm/tag/composer-json/
https://plugins.jetbrains.com/plugin/7631-php-composer-json-support



https://github.com/psliwa/idea-composer-plugin



https://github.com/JetBrains/intellij-community
https://github.com/JetBrains/phpstorm-stubs
https://github.com/JetBrains/intellij-sdk-docs
https://github.com/JetBrains/intellij-sdk-docs/blob/master/products/phpstorm/phpstorm.md
https://github.com/JetBrains/intellij-sdk-docs/blob/master/products/phpstorm/existing_plugins.md
https://github.com/Haehnchen/idea-php-annotation-plugin



https://github.com/JetBrains/intellij-plugins
https://github.com/JetBrains/phpstorm-workshop
https://github.com/JetBrains/phpstorm-stubs
https://github.com/JetBrains/phpstorm-docker-images
https://github.com/JetBrains/php-timeline
https://github.com/JetBrains/phpstorm-base-project
https://github.com/JetBrains/phpstorm-library-plugin
https://github.com/JetBrains/phpstorm-http-client-tutorial
https://github.com/psliwa/idea-composer-plugin


Category web