Plugins del IDE
El JumPHP IDE se amplía con plugins escritos en PHP. Un plugin puede añadir:
- acciones (menús, Find Action, atajos);
- ventanas de herramientas;
- configuraciones de ejecución;
- autocompletado y problemas (subrayados mientras escribes);
- herramientas para Claude.
Los plugins funcionan en el IDE de escritorio.
Instalar un plugin
En el IDE, abre Tools › Plugins…. Encontrarás:
- En jumphp.net: busca un plugin y pulsa Install. Cuando sale una versión más reciente, el botón pasa a Update.
- Install from a Folder…: instala la carpeta de un plugin.
- La lista de plugins instalados: puedes activarlos, desactivarlos o quitarlos.
Actualizaciones: el IDE consulta jumphp.net poco después de arrancar y luego cada 6 horas. Una notificación ofrece Update; con Update plugins automatically, las instala solo. La nueva versión se usa en el siguiente arranque.
Un plugin es PHP que se ejecuta con tus permisos: instala solo aquellos en los que confíes.
Crear un plugin
bin/jumphp plugin:new todo-finder "TODO Finder"
bin/jumphp install todo-finder
bin/jumphp test todo-finder
También puedes usar New Project › IDE plugin en el IDE.
La clase del plugin, src/TodoPlugin.php, añade lo que aporta:
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));
}
- Las ventanas de herramientas se construyen en PHP con elementos sencillos: textos, botones, listas, campos, casillas. El IDE las dibuja con su propio estilo.
- Los clics y las demás acciones del usuario vuelven a llamar a tu PHP.
- Las pruebas (
PluginTestCase) usan el plugin sin ventana. Ejecutan una acción, leen una ventana, hacen clic en ella, piden el autocompletado.
Para probarlo: Tools › Plugins… y luego Install in the IDE junto al plugin del proyecto.
Herramientas para Claude
El IDE da a su Claude un servidor MCP, jumphp-ide. Claude lo usa para manejar el IDE: abrir archivos, lanzar pruebas, depurar. Un plugin le añade sus propias herramientas:
$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 ve la herramienta como mcp__jumphp-ide__plugin_todo_finder_list_todos. La elige según su descripción: di qué devuelve y cuándo usarla. La herramienta se ejecuta en PHP dentro del IDE y nunca debe bloquear.
Publicar en jumphp.net
En Tools › Plugins…, pulsa Publish on jumphp.net junto al plugin del proyecto. Debes haber iniciado sesión. El plugin aparece entonces en la página de plugins.
- La primera cuenta que publica un identificador pasa a ser su propietaria.
- Cada versión sigue disponible. Para publicar una nueva, sube la
versionencomposer.json. bin/jumphp plugin:pack todo-findergenera el mismo.zip.- Cualquiera puede dar a un plugin de 1 a 5 estrellas, en su página o en el IDE (Rate…). Sus estadísticas públicas: descargas y nota. Su autor ve además las estadísticas privadas (visitas, instalaciones, actualizaciones, versiones, notas) en la página con la sesión iniciada, y en el IDE (Statistics).