IntelliJ Idea: comment exposer les classes, les interfaces, les annotations dans les plugins développés

J’ai créé un plugin pour IntelliJ Idea. Dans le plug-in, j’ai défini une annotation que je veux utiliser dans mes projets, mais cela ne semble pas être accessible. Comment dois-je spécifier dans le fichier plugin.xml les paquets que je veux exposer?

Lorsque vous installez un plug-in, il se trouvera à un certain endroit – par exemple C:\Users\xxx\.IdeaIC14\config\plugins\...

Maintenant que vous savez où se trouve votre fichier jar, vous pouvez l’append en tant que dépendance à votre projet. Si vous utilisez Maven, vous pouvez append quelque chose comme ceci à votre pom:

  yourplugin yourplugin 1 C:\Users\xxx\.IdeaIC14\config\plugins\yourplugin.jar system  

Ou vous pouvez installer le fichier JAR dans votre référentiel local , puis l’utiliser comme une dépendance Maven normale.

Sinon, ajoutez la dépendance directement dans les parameters du projet, comme s’il s’agissait d’un autre fichier jar.

plugin.xml n’a rien à voir avec cela, il s’agit de jars et de classpath. Ce que vous pourriez faire dans votre plugin, ce sont des inspections et des actions conviviales, qui appendaient la dépendance pour vous.

Par défaut, les plug-ins peuvent automatiquement lire et accéder aux membres publics de tout autre plug-in installé sur le même IDE (par exemple, votre plug-in peut lire des variables publiques, appeler des fonctions publiques – tout se passe sur le même chemin de classe). Si vous dépendez d’un autre plug-in, vous devez d’abord l’append en tant que dépendance explicite dans le fichier de configuration du plug – in , afin que l’IDE de l’utilisateur final puisse télécharger et installer les dépendances de plug-in requirejses.

Pendant le développement, vous devriez maintenant utiliser Gradle. Dans le build.gradle (ou build.gradle.kts ) de votre projet, la propriété gradle-intellij-plugin vous permettra de spécifier l’ id et la version de la dépendance du plug-in. Les valeurs de ces atsortingbuts se trouvent dans le référentiel de plugins , cf. Plugin XML ID ). Par la suite, le gradle-intellij-plugin appenda le gradle-intellij-plugin IntelliJ Platform souhaité à votre projet en tant que bibliothèque externe , vous permettant ainsi d’obtenir la complétion de code, une parsing statique et de tester votre plugin aux côtés de ses dépendances dans le sandbox du plugin (via ./gradlew runIde ).

Les plugins devraient éviter d’utiliser les classes internes d’autres plugins pour des raisons de stabilité. Si vous souhaitez autoriser d’autres plug-ins à utiliser votre plug-in par programmation (c’est-à-dire si vous voulez fournir une API), la plate-forme IntelliJ a le concept de ce que l’on appelle des points d’extension . Celles-ci vous permettront de définir une interface concrète, ou de contracter d’autres plugins pour accéder aux fonctionnalités de votre plugin, sans avoir besoin d’en savoir plus sur son code source. L’utilisation de points d’extension présente l’avantage supplémentaire de dissocier ces plugins de tout refactoring de plugin interne.