FR

Les plugins de l'IDE

Le JumPHP IDE s'étend avec des plugins écrits en PHP. Un plugin peut ajouter :

  • des actions (menus, Find Action, raccourcis) ;
  • des fenêtres d'outils ;
  • des configurations d'exécution ;
  • de la complétion et des problèmes (soulignés pendant la frappe) ;
  • des outils pour Claude.

Les plugins tournent dans l'IDE de bureau.

Installer un plugin

Dans l'IDE, ouvrez Tools › Plugins…. On y trouve :

  • Sur jumphp.net : cherchez un plugin, puis Install. Quand une version plus récente sort, le bouton devient Update.
  • Install from a Folder… : installe le dossier d'un plugin.
  • La liste des plugins installés : vous pouvez les activer, les désactiver ou les retirer.

Les mises à jour : l'IDE vérifie jumphp.net peu après son démarrage puis toutes les 6 heures. Une notification propose Update ; avec Update plugins automatically, il les installe tout seul. La nouvelle version sert au prochain démarrage.

Un plugin est du PHP qui tourne avec vos droits : n'installez que ceux en qui vous avez confiance.

Créer un plugin

bin/jumphp plugin:new todo-finder "TODO Finder"
bin/jumphp install todo-finder
bin/jumphp test todo-finder

Vous pouvez aussi passer par New Project › IDE plugin dans l'IDE.

La classe du plugin, src/TodoPlugin.php, ajoute ce qu'elle apporte :

public function activate(Api $ide): void
{
    $ide->action('count', 'Count the TODOs', fn (EditorState $at) => substr_count($at->text, 'TODO') . ' TODO', ['kbd' => 'Ctrl+Alt+T']);
    $ide->toolWindow('todos', 'TODOs', fn () => Ui::column(
        Ui::list(array_map(fn ($t) => Ui::item($t['text'], fn () => $ide->openFile($t['path'], $t['line'])), $this->todos())),
    ));
    $ide->diagnostics('*.php', fn (string $path, string $text) => $this->fixmes($text));
}
  • Les fenêtres d'outils se construisent en PHP, avec des éléments simples : textes, boutons, listes, champs, cases à cocher. L'IDE les dessine dans son style.
  • Les clics et les autres actions de l'utilisateur rappellent votre PHP.
  • Les tests (PluginTestCase) utilisent le plugin sans fenêtre. Ils lancent une action, lisent une fenêtre, cliquent dedans, demandent la complétion.

Pour l'essayer : Tools › Plugins…, puis Install in the IDE à côté du plugin du projet.

Des outils pour Claude

L'IDE donne à son Claude un serveur MCP, jumphp-ide. Claude s'en sert pour piloter l'IDE : ouvrir des fichiers, lancer des tests, déboguer. Un plugin y ajoute ses propres outils :

$ide->mcpTool('list_todos', 'The TODO comments of the project: path, line, text.',
    fn (array $args) => $this->todos($args['path'] ?? ''),
    ['path' => ['type' => 'string', 'description' => 'only under this folder']]);

Claude voit l'outil sous le nom mcp__jumphp-ide__plugin_todo_finder_list_todos. Il le choisit d'après sa description : dites ce qu'il renvoie et quand s'en servir. L'outil tourne en PHP dans l'IDE et ne doit jamais bloquer.

Publier sur jumphp.net

Dans Tools › Plugins…, cliquez Publish on jumphp.net à côté du plugin du projet. Il faut être connecté. Le plugin apparaît alors sur la page des plugins.

  • Le premier compte qui publie un identifiant en devient le propriétaire.
  • Chaque version reste disponible. Pour en publier une nouvelle, montez la version dans le composer.json.
  • bin/jumphp plugin:pack todo-finder fabrique le même .zip.
  • Chacun peut noter un plugin de 1 à 5 étoiles, sur sa page ou dans l'IDE (Rate…). Ses statistiques publiques : téléchargements et note. L'auteur voit en plus ses statistiques privées (vues, installations, mises à jour, versions, notes) sur la page quand il est connecté, et dans l'IDE (Statistics).