-
直接使用已安装的 IntelliJ IDEA/Android Studio 环境
- 为了方便项目添加第三方依赖,项目采用 gradle 方式构建
- 使用 Kotlin 开发
通过 Gradle 构建项目,添加 Kotlin 支持(如下图)
构建项目后,修改项目 build.gradle 文件,添加插件开发 SDK
buildscript {
ext.kotlin_version = '1.2.0'
repositories {
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
plugins {
id "org.jetbrains.intellij" version "0.2.17"
}
apply plugin: 'org.jetbrains.intellij'
apply plugin: 'kotlin'
// 详细配置参数请看:https://github.com/JetBrains/gradle-intellij-plugin#configuration
intellij {
localPath '/Applications/IntelliJ IDEA CE.app'
intellij.updateSinceUntilBuild false
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
repositories {
jcenter()
}
group 'com.fbsum.plugin'
version '0.0.1'
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
}
查看 External Libraries 确认配置成功
在 src/main/resources/ 目录下添加 META-INF/plugin.xml,修改相关信息(重要,尤其是 id)。
<idea-plugin>
<id>com.fbsum.plugin.hello</id>
<name>HelloWorld Plugin</name>
<version>0.0.1</version>
<vendor email="dummy" url="dummy">dummy</vendor>
<description><![CDATA[
Sample plugin.<br>
]]></description>
<change-notes><![CDATA[
Release 0.0.1: Initial release.<br>
]]>
</change-notes>
<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description -->
<idea-version since-build="162"/>
<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
on how to target different products -->
<!-- uncomment to enable plugin in all products
<depends>com.intellij.modules.lang</depends>
-->
<extensions defaultExtensionNs="com.intellij">
</extensions>
<actions>
</actions>
</idea-plugin>
创建 Action
将生成的 Action 转成 Kotlin 文件
class HelloAction : AnAction() {
override fun actionPerformed(e: AnActionEvent) {
val project = e.project
val s = Messages.showInputDialog(project, "What's your name?", "Hello", Messages.getQuestionIcon())
Messages.showMessageDialog(project, "Hello $s!", "Welcome", Messages.getInformationIcon())
}
}
运行 runIdea Task
查看插件
在需要的类里添加 Log 实例
class HelloAction : AnAction() {
private val log = Logger.getInstance(HelloAction::class.java)
override fun actionPerformed(e: AnActionEvent) {
log.info("actionPerformed()")
log.warn("actionPerformed()")
log.debug("actionPerformed()")
log.error("actionPerformed()")
val project = e.project
val s = Messages.showInputDialog(project, "What's your name?", "Hello", Messages.getQuestionIcon())
Messages.showMessageDialog(project, "Hello $s!", "Welcome", Messages.getInformationIcon())
}
}
编辑 runIdea 的运行配置,在 Logs 栏里,添加项目 build 目录下的 log 文件地址
Log 结果如下图(PS:log.debug 不能显示,需要更改 Help > Debug Log Settings)
修改 gradle 配置
intellij {
......
// 不更新 plugin.xml 里的 since-build 属性,即以 plugin.xml 的配置为准
intellij.updateSinceUntilBuild false
......
}
运行 buildPlugin task