ES

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 version en composer.json.
  • bin/jumphp plugin:pack todo-finder genera 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).