En esta página
Herramientas
Zolo viene con un conjunto completo de herramientas de desarrollo.
CLI (zolo)¶
El comando zolo es la interfaz principal para trabajar con código Zolo.
Ejecutando Código¶
zolo run hello.zolo # compilar y ejecutar
zolo hello.zolo # atajo para 'run'Compilando¶
zolo compile hello.zolo # mostrar el código Lua generadoEsto es útil para depuración — puedes ver exactamente qué código Lua produce tu programa Zolo.
Verificación de Tipos¶
zolo check hello.zolo # analizar y verificar tipos sin ejecutarPruebas¶
zolo test tests.zolo # ejecutar todas las funciones @test
zolo test tests.zolo --filter fib # solo pruebas que coincidan con "fib"
zolo test tests.zolo --list # listar nombres de pruebasLa salida de las pruebas muestra aprobado/reprobado para cada función de prueba:
[PASS] test_addition
[PASS] test_fibonacci
[FAIL] test_broken - assertion failed: expected 5, got 4
Results: 2 passed, 1 failed, 3 totalFormateo¶
zolo fmt hello.zolo # formatear archivo en su lugar
zolo fmt --check hello.zolo # verificar formateo sin modificarREPL¶
zolo repl # iniciar sesión interactivaVersión y Ayuda¶
zolo version # o zolo -v
zolo help # o zolo -hLanguage Server Protocol (LSP)¶
El servidor LSP de Zolo (zolo-lsp) proporciona funciones de IDE. Está implementado en Rust usando tower-lsp y se comunica a través de stdin/stdout.
Funcionalidades Soportadas¶
| Funcionalidad | Descripción |
|---|---|
| Diagnósticos | Errores de análisis con ubicaciones en el código fuente |
| Hover | Firmas de funciones, información de struct/enum/trait |
| Autocompletar | Palabras clave, tipos, símbolos del documento, snippets |
| Ir a Definición | Funciones, structs, enums, traits, variables |
| Símbolos del Documento | Esquema jerárquico del archivo |
| Tokens Semánticos | Resaltado de sintaxis enriquecido (funciones, métodos, tipos, parámetros, campos, decoradores) |
| Ayuda de Firma | Información de parámetros al escribir llamadas a funciones |
| Sugerencias Inline | Nombres de parámetros en llamadas, tipos inferidos para vinculaciones let |
Tipos de Token Semántico¶
El LSP proporciona tokens semánticos para:
- function — nombres de funciones (con modificador
declaration) - method — nombres de métodos
- parameter — parámetros de función
- variable — variables locales
- property — campos de struct
- type — nombres de tipos (structs, enums)
- interface — nombres de traits
- enumMember — variantes de enum
- decorator — anotaciones
@ - keyword — palabras clave del lenguaje
- string — literales de cadena
- number — literales numéricos
- comment — comentarios
Sugerencias Inline¶
Dos tipos de sugerencias inline:
Sugerencias de nombre de parámetro — mostradas antes de los argumentos en llamadas a funciones:
add(/*a:*/ 1, /*b:*/ 2)Sugerencias de tipo — mostradas después de vinculaciones
letcon tipos inferidos:let x /*: int*/ = 42
Debug Adapter Protocol (DAP)¶
El crate zolo-dap implementa el Debug Adapter Protocol para depurar programas Zolo en VS Code.
Funcionalidades Soportadas¶
| Funcionalidad | Descripción |
|---|---|
| Lanzamiento | Iniciar la depuración de un archivo .zolo |
| Puntos de Interrupción | Establecer puntos de interrupción por línea |
| Paso a Paso | Ejecutar la siguiente línea |
| Entrar en | Entrar en llamadas a funciones |
| Salir de | Salir de la función actual |
| Continuar | Ejecutar hasta el siguiente punto de interrupción |
| Rastreo de Pila | Ver pila de llamadas con ubicaciones en el código fuente |
| Mapas de Fuente | Mapea líneas de salida Lua de vuelta al código fuente Zolo |
Cómo Funciona¶
- El DAP compila Zolo a Lua usando
compile_to_lua_with_source_map() - Las entradas del mapa de fuente rastrean pares
(lua_line, zolo_line) - Los puntos de interrupción se traducen de líneas Zolo a líneas Lua
- La sesión de depuración gestiona el stepping, los frames de pila y los ámbitos de variables
Configuración de Lanzamiento en VS Code¶
Añadir a .vscode/launch.json:
{
"type": "zolo",
"request": "launch",
"name": "Debug Zolo",
"program": "${file}"
}Formateador (zolo fmt)¶
El formateador de Zolo está basado en AST — analiza el código fuente y luego lo reimprime con un estilo consistente.
Funcionalidades¶
- Indentación de 2 espacios
- Posicionamiento consistente de llaves
- Preservación de comentarios
- Formateo de expresiones
- Alineación de declaraciones
Uso¶
zolo fmt myfile.zolo # formatear en su lugar
zolo fmt --check myfile.zolo # verificar sin modificar (código de salida 1 si se necesitan cambios)Extensión VS Code¶
La extensión Zolo para VS Code proporciona un entorno de desarrollo completo.
Funcionalidades¶
| Categoría | Funcionalidades |
|---|---|
| Sintaxis | Gramática TextMate para resaltado completo de sintaxis |
| Configuración de Lenguaje | Comentarios, corchetes, indentación, plegado |
| Snippets | Más de 28 snippets para construcciones comunes |
| LSP | Cliente LSP completo con auto-descubrimiento del binario zolo-lsp |
| Resaltado Semántico | Coloración rica de tokens vía tokens semánticos LSP |
| Ayuda de Firma | Información de parámetros en llamadas a funciones |
| Sugerencias Inline | Sugerencias de tipo y nombre de parámetro |
| Explorer | Vista de árbol en la barra lateral mostrando símbolos del documento |
| Visor de AST | Panel webview mostrando el AST |
| Depurador | Integración DAP para depuración |
| Comandos | Ejecutar, reiniciar LSP, mostrar AST, mostrar salida |
| Ejecutar | Ejecutar archivo actual con Ctrl+Shift+R |
Comandos¶
| Comando | Atajo | Descripción |
|---|---|---|
Zolo: Run Current File |
Ctrl+Shift+R |
Compilar y ejecutar el archivo activo |
Zolo: Restart Language Server |
— | Reiniciar el servidor LSP |
Zolo: Show AST |
— | Abrir panel del visor de AST |
Zolo: Show Output Channel |
— | Mostrar logs de salida del LSP |
Configuración¶
| Ajuste | Predeterminado | Descripción |
|---|---|---|
zolo.lsp.enabled |
true |
Habilitar/deshabilitar el cliente LSP |
zolo.lsp.serverPath |
automático | Ruta al binario zolo-lsp |
zolo.trace.server |
off |
Nivel de rastreo LSP (off, messages, verbose) |
Barra de Estado¶
Muestra el estado de la conexión LSP:
- Conectado / Desconectado / Error
- Haz clic para abrir el canal de salida con los logs LSP
Zolo Explorer¶
Un panel en la barra lateral (barra de actividad) que muestra el esquema del documento:
- Funciones, structs, enums, traits, variables
- Haz clic en cualquier símbolo para navegar a su ubicación
- Se actualiza automáticamente al cambiar el archivo
Visor de AST¶
Un panel webview que muestra el AST analizado como un árbol interactivo:
- Se actualiza en tiempo real mientras editas
- Muestra todos los nodos del AST con sus tipos y spans
Depuración¶
Pulsa F5 para iniciar la depuración con el adaptador de depuración Zolo:
- Establece puntos de interrupción haciendo clic en el margen
- Avanza por el código línea a línea
- Visualiza la pila de llamadas
- Continúa/pausa la ejecución
Menús Contextuales¶
Haz clic derecho en un archivo .zolo en el explorer → "Run with Zolo"