Extensões
Criando uma extensão
Uma extensão é um pequeno manifesto JSON com duas responsabilidades: detectar um tipo de projeto e descrever de onde vêm seus comandos.
Formato
{
"id": "deno",
"name": "Deno",
"detectors": [
{ "files": ["deno.json", "deno.jsonc"] }
],
"commandSources": [
{ "type": "static", "commands": [
{ "key": "dev", "label": "dev", "command": "deno task dev", "kind": "dev" },
{ "key": "test", "label": "test", "command": "deno test", "kind": "test" }
]}
]
}
Detectores
Uma pasta combina quando um dos detectors combina — tipicamente pela presença de
arquivos específicos (nomes exatos). É assim que package.json → Node,
composer.json → PHP, deno.json → Deno, e por aí vai.
Fontes de comando
Dois provedores:
scriptsFile— lê scripts nomeados de um arquivo, ex.: o objetoscriptsde umpackage.jsonoucomposer.json. Ótimo quando o projeto já lista seus comandos.static— uma lista fixa de comandos que você escreve (como acima).
O JSON Schema autoritativo e um guia de contribuição ficam no repositório
extensions — valide seu
manifesto contra o
schema.json antes de publicar.
Teste
Hospede o manifesto em qualquer lugar (uma URL de arquivo raw serve) e instale de uma URL para testá-lo localmente antes de submeter ao registro.