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
versionnocomposer.json. bin/jumphp plugin:pack todo-findergera 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).