Nesta página
Ferramentas
Zolo vem com um conjunto abrangente de ferramentas de desenvolvimento.
CLI (zolo)¶
O comando zolo é a interface principal para trabalhar com código Zolo.
Executando Código¶
zolo run hello.zolo # compilar e executar
zolo hello.zolo # atalho para 'run'Compilando¶
zolo compile hello.zolo # exibir o código Lua geradoIsso é útil para depuração — você pode ver exatamente qual código Lua o seu programa Zolo produz.
Verificação de Tipos¶
zolo check hello.zolo # analisar e verificar tipos sem executarTestes¶
zolo test tests.zolo # executar todas as funções @test
zolo test tests.zolo --filter fib # apenas testes correspondendo a "fib"
zolo test tests.zolo --list # listar nomes dos testesA saída dos testes mostra aprovado/reprovado para cada função de teste:
[PASS] test_addition
[PASS] test_fibonacci
[FAIL] test_broken - assertion failed: expected 5, got 4
Results: 2 passed, 1 failed, 3 totalFormatação¶
zolo fmt hello.zolo # formatar arquivo no local
zolo fmt --check hello.zolo # verificar formatação sem modificarREPL¶
zolo repl # iniciar sessão interativaVersão e Ajuda¶
zolo version # ou zolo -v
zolo help # ou zolo -hLanguage Server Protocol (LSP)¶
O servidor LSP do Zolo (zolo-lsp) fornece recursos de IDE. Ele é implementado em Rust usando tower-lsp e se comunica via stdin/stdout.
Funcionalidades Suportadas¶
| Funcionalidade | Descrição |
|---|---|
| Diagnósticos | Erros de análise com localizações no código-fonte |
| Hover | Assinaturas de funções, informações de struct/enum/trait |
| Autocompletar | Palavras-chave, tipos, símbolos do documento, snippets |
| Ir para Definição | Funções, structs, enums, traits, variáveis |
| Símbolos do Documento | Esboço hierárquico do arquivo |
| Tokens Semânticos | Realce de sintaxe rico (funções, métodos, tipos, parâmetros, campos, decoradores) |
| Ajuda de Assinatura | Informações de parâmetro ao digitar chamadas de função |
| Dicas Inline | Nomes de parâmetros em chamadas, tipos inferidos para vinculações let |
Tipos de Token Semântico¶
O LSP fornece tokens semânticos para:
- function — nomes de funções (com modificador
declaration) - method — nomes de métodos
- parameter — parâmetros de função
- variable — variáveis locais
- property — campos de struct
- type — nomes de tipos (structs, enums)
- interface — nomes de traits
- enumMember — variantes de enum
- decorator — anotações
@ - keyword — palavras-chave da linguagem
- string — literais de string
- number — literais numéricos
- comment — comentários
Dicas Inline¶
Dois tipos de dicas inline:
Dicas de nome de parâmetro — exibidas antes dos argumentos em chamadas de função:
add(/*a:*/ 1, /*b:*/ 2)Dicas de tipo — exibidas após vinculações
letcom tipos inferidos:let x /*: int*/ = 42
Debug Adapter Protocol (DAP)¶
O crate zolo-dap implementa o Debug Adapter Protocol para depurar programas Zolo no VS Code.
Funcionalidades Suportadas¶
| Funcionalidade | Descrição |
|---|---|
| Lançamento | Iniciar a depuração de um arquivo .zolo |
| Pontos de Parada | Definir pontos de parada por linha |
| Passar Por Cima | Executar a próxima linha |
| Entrar em | Entrar em chamadas de função |
| Sair de | Sair da função atual |
| Continuar | Executar até o próximo ponto de parada |
| Rastreamento de Pilha | Visualizar pilha de chamadas com localizações no código-fonte |
| Mapas de Fonte | Mapeia linhas de saída Lua de volta para o código-fonte Zolo |
Como Funciona¶
- O DAP compila Zolo para Lua usando
compile_to_lua_with_source_map() - As entradas do mapa de fonte rastreiam pares
(lua_line, zolo_line) - Os pontos de parada são traduzidos de linhas Zolo para linhas Lua
- A sessão de depuração gerencia stepping, frames de pilha e escopos de variáveis
Configuração de Lançamento do VS Code¶
Adicione ao .vscode/launch.json:
{
"type": "zolo",
"request": "launch",
"name": "Debug Zolo",
"program": "${file}"
}Formatador (zolo fmt)¶
O formatador Zolo é baseado em AST — analisa o código-fonte e então o reimprime com estilo consistente.
Funcionalidades¶
- Indentação de 2 espaços
- Posicionamento consistente de chaves
- Preservação de comentários
- Formatação de expressões
- Alinhamento de declarações
Uso¶
zolo fmt myfile.zolo # formatar no local
zolo fmt --check myfile.zolo # verificar sem modificar (código de saída 1 se alterações necessárias)Extensão VS Code¶
A extensão Zolo para VS Code fornece um ambiente de desenvolvimento completo.
Funcionalidades¶
| Categoria | Funcionalidades |
|---|---|
| Sintaxe | Gramática TextMate para realce completo de sintaxe |
| Configuração de Linguagem | Comentários, colchetes, indentação, dobramento |
| Snippets | Mais de 28 snippets para construções comuns |
| LSP | Cliente LSP completo com auto-descoberta do binário zolo-lsp |
| Realce Semântico | Coloração rica de tokens via tokens semânticos LSP |
| Ajuda de Assinatura | Informações de parâmetro em chamadas de função |
| Dicas Inline | Dicas de tipo e nome de parâmetro |
| Explorer | Visualização em árvore na barra lateral mostrando símbolos do documento |
| Visualizador de AST | Painel webview mostrando a AST |
| Depurador | Integração DAP para depuração |
| Comandos | Executar, reiniciar LSP, mostrar AST, mostrar saída |
| Executar | Executar arquivo atual com Ctrl+Shift+R |
Comandos¶
| Comando | Atalho | Descrição |
|---|---|---|
Zolo: Run Current File |
Ctrl+Shift+R |
Compilar e executar o arquivo ativo |
Zolo: Restart Language Server |
— | Reiniciar o servidor LSP |
Zolo: Show AST |
— | Abrir painel do visualizador de AST |
Zolo: Show Output Channel |
— | Mostrar logs de saída do LSP |
Configuração¶
| Configuração | Padrão | Descrição |
|---|---|---|
zolo.lsp.enabled |
true |
Habilitar/desabilitar o cliente LSP |
zolo.lsp.serverPath |
automático | Caminho para o binário zolo-lsp |
zolo.trace.server |
off |
Nível de rastreamento LSP (off, messages, verbose) |
Barra de Status¶
Mostra o status da conexão LSP:
- Conectado / Desconectado / Erro
- Clique para abrir o canal de saída com logs LSP
Zolo Explorer¶
Um painel na barra lateral (barra de atividade) mostrando o esboço do documento:
- Funções, structs, enums, traits, variáveis
- Clique em qualquer símbolo para navegar até sua localização
- Atualiza automaticamente nas mudanças de arquivo
Visualizador de AST¶
Um painel webview mostrando a AST analisada como uma árvore interativa:
- Atualiza ao vivo enquanto você edita
- Mostra todos os nós da AST com seus tipos e spans
Depuração¶
Pressione F5 para iniciar a depuração com o adaptador de depuração Zolo:
- Defina pontos de parada clicando na margem
- Avance pelo código linha por linha
- Visualize a pilha de chamadas
- Continue/pause a execução
Menus de Contexto¶
Clique com o botão direito em um arquivo .zolo no explorer → "Run with Zolo"