Ctrl K
ComunidadGuías…

translations/LSP_ES.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# 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.