Tutorial de desarrollo de complementos de IDEA (1)

Estoy participando en el "Programa de Vela · Nuggets"

antecedentes

Como desarrolladores que usan IDEA/Android Studio, todos han usado complementos en mayor o menor medida. Con la actualización de la versión de las herramientas de desarrollo, muchos complementos tendrán problemas de compatibilidad y es posible que el autor haya detenido el mantenimiento hace algunos años.

Si podemos dominar algunos conocimientos de desarrollo de complementos y encontrar complementos que han dejado de mantener el mantenimiento, podemos mantenerlos automáticamente. Si tenemos algunas ideas, incluso podemos desarrollar complementos por nosotros mismos.

Actualmente, hay muy pocos tutoriales en línea sobre los complementos de IDEA, y algunos tutoriales son relativamente antiguos y muchas configuraciones han cambiado, por lo que planeo escribir algunos tutoriales sobre el desarrollo de complementos de IDEA, con la esperanza de ayudar a todos.

Este artículo es la primera parte del tutorial. A través de este artículo, puede crear un proyecto de complemento simple de HelloWorld, familiarizarse con el entorno de desarrollo de complemento de IDEA y comprender la estructura del proyecto de complemento de IDEA.

herramientas de desarrollo

Para desarrollar complementos de IDEA, debe descargar IDEA, la dirección de descarga: www.jetbrains.com/zh-cn/idea/… Elija la versión comunitaria gratuita.

Crear proyecto

Abra IDEA, haga clic en New Project, luego seleccione IDE Plugin, como se muestra a continuación

idea_plugin_guide_1.png

Ingrese la información relevante del proyecto de complemento y luego haga clic en el Createbotón para crear el proyecto. La estructura del proyecto es la siguiente:

DxyJsonToDart
├── .idea
│   └── .gitignore
│   └── gradle.xml
│   └── misc.xml
│   └── vcs.xml
├── .run
│   └── Run IDE with Plugin.run.xml
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── src
│   ├── main
│   │   ├── java
│   │   └── resources
│   │       └── META-INF
│   │           └── plugin.xml
│   │           └── pluginIcon.svg
├── .gitignore
├── build.gradle.kts
├── gradlew
├── gradlew.bat
└── settings.gradle.kts
复制代码

Aquellos que han desarrollado proyectos de Android deben estar familiarizados con la estructura del proyecto, que es básicamente similar al proyecto de Android.Nuestro código estará escrito src/main/java/包名en , que build.gradle.ktses el archivo de configuración de Gradle y el archivo plugin.xmlde configuración del complemento. en desarrollo, a menudo nos comunicaremos con este Dos archivos de configuración para tratar.

Echemos un breve vistazo al archivo build.gradle.kts:

plugins {
    id("java")
    id("org.jetbrains.intellij") version "1.6.0"
}

group = "cn.dxy.app"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
}

intellij {
    version.set("2021.3")
    type.set("IC") 
    plugins.set(listOf(/* Plugin Dependencies */))
}

tasks {
    withType<JavaCompile> {
        sourceCompatibility = "11"
        targetCompatibility = "11"
    }

    patchPluginXml {
        sinceBuild.set("212")
        untilBuild.set("223.*")
    }

    signPlugin {
        certificateChain.set(System.getenv("CERTIFICATE_CHAIN"))
        privateKey.set(System.getenv("PRIVATE_KEY"))
        password.set(System.getenv("PRIVATE_KEY_PASSWORD"))
    }

    publishPlugin {
        token.set(System.getenv("PUBLISH_TOKEN"))
    }
}

复制代码

这个文件中的配置信息具体是什么意思,后续会讲到,暂时先不管。这时我们什么代码没有写,直接运行项目,因为在上面配置了 version.set("2021.3"),运行时会下载一个 2021.3 版本的 IDEA。这个 IDEA 大概有 1~2G 大小,下载成功后,这个 IDEA 会运行起来,运行结果如下图所示。

idea_plugin_guide_2.png

如果你切换到 Plugins 选项,你会发现我们开发的插件被自动安装到这个 IDEA 中了。

我第一次解除插件开发时有点蒙:一个 IDEA 运行启动了另外一个 IDEA。后来我才想通,因为我们的插件是要运行在 IDEA/Android Studio 中的,我们的插件适配不同的版本,还要进行代码调试,所以只能一个 IDEA 运行启动了另外一个 IDEA。

建议大家动手实践一下,会有更加直观的感受。

新建 Action

想一下我们平时是如何使用插件的,我们可能是右键点击了文件夹,或者是点击了某个菜单,这时会弹出一些选项,这些选项一般就是某个插件的入口,这些入口在 IDEA 插件中叫做 Action

下面我们写点代码,看看如何创建一个 Action,在项目的代码包中,点击右键,New => Plugin DevKit => Action,可以创建一个 Action

idea_plugin_guide_3.png

添加 Action 相关信息

idea_plugin_guide_4.png

在上图中,Add to Group 选择的是 Groups: NewGroup(New) Action: NewFile(File) Anchor: First,那么我们新建的这个 Action 就会出现在 New 这个选项中的第一个位置

点击确定按钮后,会新增一个继承 AnAction 的类 DxyJsonToDartAction

package cn.dxy.app.dxyjsontodart;

import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;

public class DxyJsonToDartAction extends AnAction {

    @Override
    public void actionPerformed(AnActionEvent e) {
        // TODO: insert action logic here
    }
}
复制代码

并且会在 plugin.xml 中新增这个 action

<actions>
    <action id="DxyJsonToDart" class="cn.dxy.app.dxyjsontodart.DxyJsonToDartAction" 
        text="我是 name" description="我是 description">
        <add-to-group group-id="NewGroup" anchor="first"/>
    </action>
</actions>
复制代码

这时我们再运行插件,看看我们刚刚编写的代码有什么效果:

Después de que se inicie IDEA, abrimos un proyecto al azar, hacemos clic con el botón derecho en la carpeta y podemos ver que la opción del complemento que acabamos de desarrollar aparece en el Newmenú .我是 name

idea_plugin_guide_5.png

Hacer referencia a otros complementos

Los complementos que escribimos pueden depender de otros complementos, y después de confiar en otros complementos, pueden usar sus clases

Documentación oficial: plugins.jetbrains.com/docs/intell…

Abra el archivo del proyecto build.gradle.kts y modifique el código en plugins.set() de la siguiente manera:

intellij {
    version.set("2021.3")
    type.set("IC") // Target IDE Platform

    plugins.set(
        listOf(
            "Dart:213.5744.122", //https://plugins.jetbrains.com/plugin/6351-dart/versions
            "io.flutter:63.2.4",//https://plugins.jetbrains.com/plugin/9212-flutter/versions/stable
            "GsonFormatPlus:1.6.1",//https://plugins.jetbrains.com/plugin/14949-gsonformatplus/versions
            "com.jack.plugin.autojson:1.5", //https://plugins.jetbrains.com/plugin/11600-autojson/versions
            "com.crzsc.FlutterAssetsGenerator:2.0.0",//https://plugins.jetbrains.com/plugin/15427-flutterassetsgenerator/versions
            "com.ruiyu.ruiyu:4.4.2", //https://plugins.jetbrains.com/plugin/11415-flutterjsonbeanfactory-only-null-safety-/versions
        )
    )
}
复制代码

Vuelva a ejecutar el proyecto. Después de que la operación sea exitosa, cambie a la opción Complemento, como se muestra en la siguiente figura:

idea_plugin_guide_6.png

Podemos ver que la IDEA que se ejecuta esta vez empaquetará e instalará todos los complementos presentados anteriormente.

Al final

Eso es todo por este tutorial. Si practica, creo que tendrá una comprensión general del desarrollo de complementos de IDEA.

Se introducirá más contenido en tutoriales posteriores.

Además, si te interesan esos aspectos, también puedes dejar un comentario, y si lo conozco, también lo compartiré.

Supongo que te gusta

Origin juejin.im/post/7145737911344824328
Recomendado
Clasificación