translations/LSP_ES.md
Rama main · réplica de lectura del repositorio original.
# Protocolo de Servidor de Lenguaje Zen C (LSP)
Zen C viene con un Servidor de Lenguaje (LSP) integrado para proporcionar características de editor como autocompletado, ir a definición y diagnóstico de errores.
## Iniciando el Servidor
El Servidor de Lenguaje está integrado en el compilador `zc`. Puedes iniciarlo manualmente (aunque tu editor generalmente maneja esto) con:
```bash
zc lsp
```
Se comunica a través de entrada/salida estándar (stdio).
## Configuración del Editor
### VS Code
Para Visual Studio Code, usa la extensión oficial de Zen C:
- **Repositorio**: [zenc-lang/vscode-zenc](https://github.com/zenc-lang/vscode-zenc)
Instala la extensión directamente desde el **[Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=Z-libs.zenc)**.
Alternativamente, puedes construir el `.vsix` desde el código fuente.
### Vim / Neovim
El soporte para Vim y Neovim se proporciona a través del plugin `zenc.vim`, que incluye resaltado de sintaxis y helpers de configuración LSP.
- **Repositorio**: [zenc-lang/zenc.vim](https://github.com/zenc-lang/zenc.vim)
#### Neovim (ejemplo con `lazy.nvim`)
Si usas `nvim-lspconfig`, puedes registrar `zc` como un servidor personalizado:
```lua
local lspconfig = require('lspconfig')
local configs = require('lspconfig.configs')
if not configs.zenc then
configs.zenc = {
default_config = {
cmd = { 'zc', 'lsp' },
filetypes = { 'zenc', 'zc' },
root_dir = lspconfig.util.root_pattern('.git', 'build.bat', 'Makefile'),
settings = {},
},
}
end
lspconfig.zenc.setup {}
```
### Zed
Para configurar Zen C en Zed, añade lo siguiente a tu `settings.json` o configuración de lenguaje:
```json
{
"lsp": {
"zenc": {
"binary": {
"path": "zc",
"arguments": ["lsp"]
}
}
},
"languages": {
"Zen C": {
"language_servers": ["zenc"]
}
}
}
```
### Editores Genéricos (Sublime, Emacs, etc.)
Para cualquier editor que soporte clientes LSP genéricos:
1. **Comando**: `zc`
2. **Argumentos**: `lsp`
3. **Transporte**: `stdio`
4. **Extensiones de archivo**: `.zc`
## Características
- **Diagnósticos**: Errores de sintaxis y tipos en tiempo real.
- **Ir a Definición**: Saltar a definiciones de structs, funciones y variables.
- **Autocompletado**: Sugerencias conscientes del contexto para campos y métodos.
- **Hover**: Información de tipos y documentación al pasar el cursor.