PrumoGrid — exemplo independente de plugin / standalone plugin example API 1 · PrumoGrid 0.5.4+ · licença Apache 2.0 (../../LICENSE.txt) PORTUGUÊS O exemplo lista projetos e abre um novo PowerShell de diagnóstico em um projeto chamado Projeto-demo. Não usa agentes pagos, não acessa a rede e não altera arquivos do projeto. O terminal executa Write-Output, Get-Location e exibe a versão do PowerShell. Para experimentar o pacote pronto: 1. Crie uma pasta Projeto-demo e cadastre-a em + adicionar projetos… no PrumoGrid. 2. Ferramentas > Extensões > Instalar pacote… > diagnostico-1.0.0.prumoplugin. 3. Habilite Diagnóstico do projeto depois de conferir os recursos solicitados. 4. Clique em 1. Mostrar projetos; a mensagem deve incluir Projeto-demo. 5. Clique em 2. Abrir diagnóstico. Feche Extensões e selecione Projeto-demo. 6. Confira o novo terminal Diagnóstico por plugin e a saída PrumoGrid plugin OK. Cada clique abre um novo terminal. Se faltar o projeto ou houver nomes duplicados, o plugin avisa em vez de escolher um projeto diferente. Para criar seu próprio pacote: 1. Instale Node.js 22 ou superior, necessário apenas para este empacotador. 2. Salve extension.json, index.cjs e empacotar.mjs na mesma pasta, em UTF-8. 3. Edite o manifesto e o código. PROJECT_NAME deve ser o nome exato do projeto. 4. No PowerShell, dentro dessa pasta: node .\empacotar.mjs 5. Instale o arquivo .prumoplugin gerado pela tela de Extensões. Onde registrar: - O plugin nasce em uma pasta ou repositório próprio. Não precisa de commit, PR ou acesso ao repositório do PrumoGrid. Distribuição independente, como uma extensão do VS Code, porém com formato/API próprios (não aceita VSIX). - extension.json / commands: declara os IDs e os títulos dos botões. - index.cjs / activate(api) / api.commands.register: associa cada ID ao callback. - Ferramentas > Extensões: instala e habilita o pacote no perfil atual. Não há cadastro em servidor, Windows Registry ou edição da pasta do aplicativo. O PrumoGrid não descobre pastas de plugins de desenvolvimento automaticamente. O registro fica dentro da extensão; passe listar-projetos, não exemplo.diagnostico.listar-projetos. Para atualizar: mantenha id, aumente version (ex.: 1.0.1), empacote, instale o novo arquivo e habilite novamente. Editar index.cjs não muda o pacote já instalado. Atualizar lista apenas relê a lista instalada; não recompila os arquivos locais. EEXIST significa que o pacote de saída já existe: aumente a versão para criar outro. O empacotador confere campos básicos, sintaxe e tamanho; o PrumoGrid valida o pacote na instalação. Renomear um ZIP para .prumoplugin não produz um pacote válido. O formato é JSON com manifest (objeto) e source (texto CommonJS), até 2 MiB. Permissões: code.execute é obrigatória; projects.read permite listar projetos; terminal.create permite abrir o PowerShell. Código Node executa com os direitos da sua conta; essas permissões limitam as APIs do PrumoGrid, não o próprio Node. O host chama activate quando você executa o primeiro comando, não na instalação. O retorno de terminal.create confirma a criação do painel, não o fim do comando. ENGLISH This example lists projects and opens a new diagnostic PowerShell in Projeto-demo. It uses no paid agent or network service and does not change project files. Try it: add a folder named Projeto-demo to PrumoGrid. Open Tools > Extensions > Install package…, choose diagnostico-1.0.0.prumoplugin, review and enable it. Click 1. Mostrar projetos, then 2. Abrir diagnóstico. Close Extensions, select Projeto-demo and check the new terminal for PrumoGrid plugin OK. Each click opens a new terminal. Customize: install Node.js 22+, save extension.json, index.cjs and empacotar.mjs in one folder as UTF-8, edit them, then run node .\empacotar.mjs from PowerShell. No checkout, npm install or application rebuild is required. The installed app already includes its plugin runtime; Node.js is only needed to run the packager. Declare command IDs/titles in extension.json, register the same IDs with api.commands.register inside activate(api), then install and enable the package. No remote registration or automatic discovery of development folders is involved. Keep the plugin ID and increase version when updating; rebuild, reinstall and enable again. Refresh list does not reload your development source files. The package is UTF-8 JSON containing manifest and source, not a ZIP archive. Plugins run with your account privileges. Only install code you trust.