Ctrl K
ComunidadGuías…

translations/LSP_IT.md

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

Archivo original ↗Preguntar a KiBot
# Protocollo Server di Linguaggio Zen C (LSP)

Zen C include un Server di Linguaggio (LSP) integrato per fornire funzionalità dell'editor come autocompletamento, vai alla definizione e diagnostica degli errori.

## Avvio del Server

Il Server di Linguaggio è integrato nel compilatore `zc`. Puoi avviarlo manualmente (sebbene il tuo editor di solito lo gestisca) con:

```bash
zc lsp
```

Comunica tramite input/output standard (stdio).

## Configurazione dell'Editor

### VS Code

Per Visual Studio Code, usa l'estensione ufficiale di Zen C:

- **Repository**: [zenc-lang/vscode-zenc](https://github.com/zenc-lang/vscode-zenc)

Installa l'estensione direttamente dal **[Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=Z-libs.zenc)**.

In alternativa, puoi compilare il `.vsix` dal codice sorgente.

### Vim / Neovim

Il supporto per Vim e Neovim è fornito tramite il plugin `zenc.vim`, che include evidenziazione della sintassi e helper di configurazione LSP.

- **Repository**: [zenc-lang/zenc.vim](https://github.com/zenc-lang/zenc.vim)

#### Neovim (esempio con `lazy.nvim`)

Se usi `nvim-lspconfig`, puoi registrare `zc` come server personalizzato:

```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

Per configurare Zen C in Zed, aggiungi quanto segue al tuo `settings.json` o configurazione del linguaggio:

```json
{
  "lsp": {
    "zenc": {
      "binary": {
        "path": "zc",
        "arguments": ["lsp"]
      }
    }
  },
  "languages": {
    "Zen C": {
      "language_servers": ["zenc"]
    }
  }
}
```

### Editor Generici (Sublime, Emacs, ecc.)

Per qualsiasi editor che supporti client LSP generici:

1.  **Comando**: `zc`
2.  **Argomenti**: `lsp`
3.  **Trasporto**: `stdio`
4.  **Estensioni file**: `.zc`

## Funzionalità

- **Diagnostica**: Errori di sintassi e tipo in tempo reale.
- **Vai alla Definizione**: Salta alle definizioni di struct, funzioni e variabili.
- **Autocompletamento**: Suggerimenti contestuali per campi e metodi.
- **Hover**: Informazioni sul tipo e documentazione al passaggio del mouse.