Zed
O Zed empacota tree-sitter nativamente e tem uma história limpa de extensão LSP. A extensão httui-lang do Zed conecta os dois.
Instalação
Seção intitulada “Instalação”- Abra o Zed.
Cmd+Shift+X→ painel de Extensions.- Pesquise “httui”.
- Instale httui-lang.
A extensão auto-instala o parser tree-sitter + baixa o binário
httui-lsp no primeiro uso.
O Zed lê .zed/settings.json por projeto (seu vault) e
~/.config/zed/settings.json globalmente.
{ "lsp": { "httui-lsp": { "binary": { "path": "httui-lsp", "arguments": [] }, "settings": { "httui": { "env": "staging" } } } }, "languages": { "httui": { "tab_size": 2, "format_on_save": "off", "formatter": "language_server" } }}Detecção de arquivo
Seção intitulada “Detecção de arquivo”A extensão registra:
*.httui→ linguagemhttui*.md→ markdown (httui injeta em blocos de código fenced)
Pra injeção markdown funcionar, o Zed precisa da grammar tree-sitter markdown (built-in) + as queries de injeção do httui (shippam com a extensão). Sem config extra.
Features
Seção intitulada “Features”| Feature | Como usar |
|---|---|
| Syntax highlight | Automático na abertura do arquivo |
| Hover | Mouse sobre {{ref}} (default K no modo vim do Zed) |
| Go to definition | F12 / Cmd+Click |
| Find references | Shift+F12 |
| Rename | F2 |
| Code actions | Cmd+. |
| Format document | Cmd+Shift+I |
| Workspace symbols | Cmd+T |
Ambiente ativo
Seção intitulada “Ambiente ativo”Configure por vault em .zed/settings.json:
{ "lsp": { "httui-lsp": { "settings": { "httui": { "env": "staging" } } } }}Ou globalmente se você trabalha sempre num env. Pra trocar no voo:
Cmd+Shift+P → “httui: Set active environment”.
Code lens Run
Seção intitulada “Code lens Run”Se o app desktop httui tá rodando no mesmo vault, o Zed mostra
uma lens “Run” acima de cada bloco. Clique nela → o LSP manda
httui/blockRun pro desktop, que executa e retorna o resultado
inline (renderizado num painel pequeno abaixo do bloco via UI
inline do Zed).
Sem o desktop rodando, a lens mostra “Run in TUI →” —
clicar abre um split de terminal com httui-tui run <file>.
Theming
Seção intitulada “Theming”httui-lang shippa com mapeamentos de token que respeitam os temas do Zed:
| Node httui | Token Zed (default) |
|---|---|
(verb) | keyword |
(alias_ref ident) | function |
(env_ref ident) | constant |
(field) @assertion | variable.special |
(literal) @assertion | string |
(reference) (inteiro) | embedded |
Temas custom pegam isso automaticamente. Pra sobrescrever, no
settings.json:
{ "experimental.theme_overrides": { "syntax": { "function": { "color": "#84B5FF" }, "constant": { "color": "#FFCC66" } } }}Snippets
Seção intitulada “Snippets”O Zed lê .zed/snippets/httui.json por projeto:
{ "HTTP block": { "prefix": "http", "body": [ "http alias=$1", "${2:GET} ${3:https://example.com/path}", "${4:Accept: application/json}", "$0" ] }, "HTTP with expect": { "prefix": "httpexpect", "body": [ "http alias=$1", "${2:GET} ${3:https://example.com/path}", "", "# expect:", "# status == 200", "$0" ] }, "DB block": { "prefix": "db", "body": [ "db-${1:local}", "SELECT $0" ] }}Troubleshooting
Seção intitulada “Troubleshooting”Extensão não instalou o binário LSP
Seção intitulada “Extensão não instalou o binário LSP”A extensão baixa httui-lsp do GitHub Releases no primeiro uso.
Se offline / bloqueado:
cargo install httui-lspDepois configure o path explicitamente:
{ "lsp": { "httui-lsp": { "binary": { "path": "/Users/you/.cargo/bin/httui-lsp" } } } }Injeção markdown não funciona
Seção intitulada “Injeção markdown não funciona”Cheque o playground tree-sitter do Zed:
Cmd+Shift+P → “editor: open tree-sitter playground”.
Abra um runbook .md com fences httui. A árvore deve mostrar as
regiões http / db-* parseadas por httui. Se não, reinstale
a extensão.
LSP não pega mudanças de env
Seção intitulada “LSP não pega mudanças de env”Recarregue o LSP:
Cmd+Shift+P → “editor: restart language server”.
Relacionado
Seção intitulada “Relacionado”- Capacidades do LSP — o que o servidor provê
- Grammar tree-sitter — tipos de node
- Setup Helix — história parecida