java - snippets - IntelliJ Idea: cómo exponer clases, interfaces, anotaciones en complementos desarrollados
live templates intellij (2)
Cuando instale un complemento, estará en un lugar determinado, por ejemplo, C:/Users/xxx/.IdeaIC14/config/plugins/...
Ahora que sabe dónde está su archivo jar, puede agregarlo como una dependencia a su proyecto. Si usas Maven, puedes agregar algo como esto a tu pom:
<dependency>
<groupId>yourplugin</groupId>
<artifactId>yourplugin</artifactId>
<version>1</version>
<systemPath>C:/Users/xxx/.IdeaIC14/config/plugins/yourplugin.jar</systemPath>
<scope>system</scope>
</dependency>
O puede instalar el jar en su repositorio local y luego usarlo como una dependencia de Maven normal.
Si no es así, a continuación, agregue la dependencia directamente en la configuración del proyecto como lo fue en cualquier otro archivo jar.
plugin.xml
no tiene nada que ver con nada de esto, se trata de jars y classpath. Lo que podría hacer en su complemento son algunas inspecciones y acciones fáciles de usar, que agregarían la dependencia para usted.
He creado un plugin para IntelliJ Idea. En el complemento, he definido una anotación que quiero usar en mis proyectos, pero no parece ser accesible. ¿Cómo debo especificar en el archivo plugin.xml los paquetes que quiero exponer?
De forma predeterminada, los complementos pueden leer y acceder automáticamente a los miembros públicos de cualquier otro complemento instalado en el mismo IDE (es decir, su complemento puede leer variables públicas, llamar a funciones públicas: todo va en la misma ruta de clase). Si depende de otro complemento, primero debe agregarlo como una dependencia explícita dentro del archivo de configuración del complemento , de modo que el IDE del usuario final sepa que debe descargar e instalar las dependencias requeridas del complemento si faltan.
Durante el desarrollo, ahora deberías usar Gradle. En el build.gradle
(o build.gradle.kts
) de su proyecto, la propiedad intellij.plugins
de gradle-intellij-plugin
le permitirá especificar el id
y la version
de la dependencia del complemento. Los valores para estos atributos se pueden encontrar en el Repositorio de complementos , cf. Plugin XML ID
). Posteriormente, gradle-intellij-plugin
agregará el complemento de plataforma IntelliJ deseado a su proyecto como una biblioteca externa , lo que le permitirá completar el código, realizar un análisis estático y probar su complemento junto con sus dependencias dentro de la caja de arena del complemento (a través de ./gradlew runIde
).
Los complementos deben evitar el uso de clases internas de otros complementos por razones de estabilidad. Si desea permitir que otros complementos utilicen su complemento mediante programación (es decir, suponga que desea proporcionar una API), la plataforma IntelliJ tiene el concepto de los llamados Puntos de extensión . Esto le permitirá definir una interfaz concreta o contratar otros complementos para acceder a la funcionalidad de su complemento, sin necesidad de saber mucho sobre su código fuente. El uso de puntos de extensión tiene la ventaja adicional de desacoplar esos complementos de cualquier refactorización interna de complementos.