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
versiondans lecomposer.json. bin/jumphp plugin:pack todo-finderfabrique 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).