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:

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.