#compdef sipi sipi-editor sipi-cli sipi-kids sipi-dev sipi-ia
# Completion de Zsh para SiPi. Instalar en un directorio de $fpath, p.ej.
# /usr/share/zsh/vendor-completions/_sipi (esta es la ruta que usa este
# paquete Debian).

_sipi_archivos() {
    _files -g '*.sipi'
}

_sipi() {
    local -a banderas
    banderas=(
        '--repl[abrir el REPL interactivo]'
        '--formatear[reindentar un archivo .sipi]:archivo:_sipi_archivos'
        '--corregir[autocorregir errores tipograficos comunes]:archivo:_sipi_archivos'
        '--revisar[analisis estatico sin ejecutar]:archivo:_sipi_archivos'
        '--sin-cache[ignorar la cache de bytecode]'
        '--depurar[modo debug: imprime cada linea antes de ejecutarla]'
        '(-h --help --ayuda)'{-h,--help,--ayuda}'[mostrar ayuda]'
    )
    _arguments -s $banderas '*:archivo .sipi:_sipi_archivos'
}

_sipi_editor() {
    _arguments '*:archivo .sipi:_sipi_archivos'
}

_sipi_cli() {
    local -a subcomandos
    subcomandos=(nuevo test compilar publicar ayuda)
    if (( CURRENT == 2 )); then
        _describe 'subcomando' subcomandos
    fi
}

case "$service" in
    sipi) _sipi ;;
    sipi-editor|sipi-kids|sipi-dev|sipi-ia) _sipi_editor ;;
    sipi-cli) _sipi_cli ;;
esac
