PT

Plugins do IDE

O JumPHP IDE pode ser estendido com plugins escritos em PHP. Um plugin pode adicionar:

  • ações (menus, Find Action, atalhos);
  • janelas de ferramentas;
  • configurações de execução;
  • autocompletar e problemas (sublinhados enquanto você digita);
  • ferramentas para o Claude.

Os plugins rodam no IDE de desktop.

Instalar um plugin

No IDE, abra Tools › Plugins…. Você encontra:

  • No jumphp.net: procure um plugin e clique em Install. Quando sai uma versão mais nova, o botão vira Update.
  • Install from a Folder…: instala a pasta de um plugin.
  • A lista dos plugins instalados: você pode ativá-los, desativá-los ou removê-los.

Atualizações: o IDE verifica o jumphp.net logo após iniciar e depois a cada 6 horas. Uma notificação oferece Update; com Update plugins automatically, ele as instala sozinho. A nova versão é usada na próxima inicialização.

Um plugin é PHP que roda com as suas permissões: instale apenas os que você confia.

Criar um plugin

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

Você também pode usar New Project › IDE plugin no IDE.

A classe do plugin, src/TodoPlugin.php, adiciona o que ele traz:

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));
}
  • As janelas de ferramentas são construídas em PHP com elementos simples: textos, botões, listas, campos, caixas de seleção. O IDE as desenha no seu próprio estilo.
  • Os cliques e as outras ações do usuário chamam o seu PHP.
  • Os testes (PluginTestCase) usam o plugin sem janela. Eles executam uma ação, leem uma janela, clicam nela, pedem o autocompletar.

Para testar: Tools › Plugins… e depois Install in the IDE ao lado do plugin do projeto.

Ferramentas para o Claude

O IDE dá ao seu Claude um servidor MCP, jumphp-ide. O Claude o usa para controlar o IDE: abrir arquivos, rodar testes, depurar. Um plugin adiciona a ele suas próprias ferramentas:

$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']]);

O Claude vê a ferramenta como mcp__jumphp-ide__plugin_todo_finder_list_todos. Ele a escolhe pela descrição: diga o que ela retorna e quando usá-la. A ferramenta roda em PHP dentro do IDE e nunca deve bloquear.

Publicar no jumphp.net

Em Tools › Plugins…, clique em Publish on jumphp.net ao lado do plugin do projeto. É preciso estar conectado. O plugin aparece então na página de plugins.

  • A primeira conta que publica um identificador torna-se sua dona.
  • Cada versão continua disponível. Para publicar uma nova, aumente a version no composer.json.
  • bin/jumphp plugin:pack todo-finder gera o mesmo .zip.
  • Qualquer pessoa pode dar a um plugin de 1 a 5 estrelas, na página dele ou no IDE (Rate…). Estatísticas públicas: downloads e nota. O autor vê também as estatísticas privadas (visitas, instalações, atualizações, versões, notas) na página quando conectado, e no IDE (Statistics).