O que é o ZLS?
O ZLS (Zig Language Server) é uma implementação do protocolo de servidor de linguagem para Zig escrita em Zig pela comunidade zigtools. Ele fornece aos desenvolvedores recursos modernos de IDE como autocompletar, ir para definição, informações ao passar o mouse e análise semântica em seus editores favoritos. Com mais de 4 mil estrelas no GitHub, é a ferramenta essencial para o desenvolvimento produtivo em Zig.
⚡ Principais Recursos do ZLS
💡 Completions Inteligentes
Autocompletar inteligente para funções, variáveis, tipos e imports. Sugestões contextuais baseadas no escopo atual e nos símbolos disponíveis.
🔍 Recursos de Navegação
Ir para definição/declaração, encontrar referências e símbolos do documento. Navegue por grandes bases de código Zig com facilidade e precisão.
📝 Inteligência de Código
Informações ao passar o mouse, realce de tokens semânticos e dicas inline. Entenda a estrutura e os tipos do código sem consulta manual.
🛠️ Ferramentas de Desenvolvimento
Formatação automática com zig fmt, ações de código, intervalos de seleção e regiões de dobramento para melhor organização do código.
🔄 Operações de Símbolos
Renomear símbolos em toda a base de código, encontrar todas as referências e esboço de símbolos do documento para navegação no projeto.
📦 Suporte a Pacotes
Resolução de pacotes customizados, suporte a cImport e tratamento de namespaces para projetos e dependências Zig complexos.
🎯 Editores e IDEs Suportados
- VS Code: Extensão oficial do Zig com integração ZLS
- Neovim/Vim: Suporte nativo a LSP e plugins dedicados
- Emacs: Compatibilidade com lsp-mode e eglot
- Sublime Text: Integração com pacote LSP
- Kate/KDevelop: Suporte LSP integrado
- Qualquer editor compatível com LSP: Suporte universal ao Language Server Protocol
apt upgrade mantém você sempre na versão mais recente.
📦 Instalação a partir do deb.griffo.io
Passo 1: Adicionar repositório
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 Existe um espelho grátis para sempre. deb-free.griffo.io distribui pacotes grátis para sempre — sem conta, sem assinatura, no máximo 2 meses atrás do upstream, correções de segurança imediatas. Hoje ele traz cliamp, Ghostty, lazydocker, Oh My Posh e Zed; ZLS não está entre elas, então o repositório acima é a única forma de instalar hoje — peça e ela pode ser adicionada.
🧩 Sobre a opção extrepo. extrepo é a ferramenta do próprio Debian para repositórios externos: ela escreve o arquivo de sources e instala a chave de assinatura para você, conferindo a chave contra metadados assinados antes de usá-la. Este repositório está registrado nela como griffo, e o espelho gratuito para sempre como griffo-free, então no Debian (bookworm, trixie, forky e sid) os comandos acima são toda a configuração.
O extrepo configura apenas o arquivo de sources e a chave: as credenciais de uma assinatura continuam indo em /etc/apt/auth.conf.d/deb.griffo.io.conf. O Ubuntu não é coberto, porque o extrepo publica metadados só para as suítes do Debian: lá, use os comandos com sudo ou como root.
Passo 2: Instalar o ZLS
# Instalar a última versão estável do ZLS
sudo apt install zls
# Ou instalar compilações noturnas para recursos de ponta
sudo apt install zls-master
# Verificar instalação
zls --version# Instalar a última versão estável do ZLS
apt install zls
# Ou instalar compilações noturnas para recursos de ponta
apt install zls-master
# Verificar instalação
zls --version🎯 Exemplos de Configuração do Editor
Configuração do VS Code:
# Install Zig extension from marketplace
# Extension automatically detects ZLS if installed in PATH
# Or configure custom ZLS path in settings.json:
{
"zig.zls.path": "/usr/bin/zls"
}Configuração do Neovim (com nvim-lspconfig):
-- In your init.lua
require('lspconfig').zls.setup{
cmd = { "zls" },
filetypes = { "zig" },
root_dir = require('lspconfig.util').root_pattern("build.zig", ".git"),
}Configuração básica do ZLS:
# Create ZLS config file
mkdir -p ~/.config/zls
cat > ~/.config/zls/zls.json << 'EOF'
{
"enable_semantic_tokens": true,
"enable_inlay_hints": true,
"enable_snippets": true,
"warn_style": true,
"highlight_global_var_declarations": true
}
EOF🚀 Por que escolher o deb.griffo.io?
- Debian Oficial: ZLS não disponível nos repositórios oficiais
- Compilação Manual: Requer Zig master e processo de compilação complexo
- Downloads Binários: Atualizações manuais e sem gerenciamento de pacotes
- deb.griffo.io: Última versão com atualizações automáticas
- ✅ Suporte à Última Linguagem: Obtenha suporte aos mais novos recursos da linguagem Zig imediatamente
- ✅ Sem Compilação Manual: Binários pré-compilados, sem necessidade de Zig master
- ✅ Atualizações Automáticas: Pacotes atualizados em horas após os lançamentos upstream
- ✅ Estável e Noturno: Ambas as versões estável e de ponta disponíveis
- ✅ Multi-Distribuição: Funciona no Bookworm, Trixie e Sid
- ✅ Manutenção Fácil: Comandos apt padrão para atualizações
📦 Repositório de construção de pacotes
Os pacotes do Debian são construídos e mantidos automaticamente nestes repositórios do GitHub:
- 🇿 zls-debian (estável) - Compilações de lançamento estável
- 🇿 zls-master-debian (noturno) - Compilações de desenvolvimento noturnas
🔗 Pacotes relacionados
Também disponíveis no deb.griffo.io:
- Linguagem de Programação Zig - Necessário para desenvolvimento ZLS
- Terminal Ghostty - Terminal moderno para desenvolvimento
- fzf Fuzzy Finder - Navegação de arquivos aprimorada