Ctrl K
ComunidadGuías…

translations/LSP_ZH_CN.md

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

Archivo original ↗Preguntar a KiBot
# Zen C 语言服务器协议 (LSP)

Zen C 自带内置的语言服务器 (LSP),提供诸如自动补全、跳转到定义和错误诊断等编辑器功能。

## 启动服务器

语言服务器内置于 `zc` 编译器中。您可以手动启动它(尽管您的编辑器通常会自动处理):

```bash
zc lsp
```

它通过标准输入/输出 (stdio) 进行通信。

## 编辑器配置

### VS Code

对于 Visual Studio Code,请使用官方的 Zen C 扩展:

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

直接从 **[Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=Z-libs.zenc)** 安装扩展。

或者,您可以从源代码构建 `.vsix`。

### Vim / Neovim

通过 `zenc.vim` 插件提供对 Vim 和 Neovim 的支持,其中包括语法高亮和 LSP 配置助手。

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

#### Neovim (`lazy.nvim` 示例)

如果您使用的是 `nvim-lspconfig`,您可以注册 `zc` 为自定义服务器:

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

要在 Zed 中配置 Zen C,请将以下内容添加到您的 `settings.json` 或语言配置中:

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

### 通用编辑器 (Sublime, Emacs 等)

对于任何支持通用 LSP 客户端的编辑器:

1.  **命令**: `zc`
2.  **参数**: `lsp`
3.  **传输**: `stdio`
4.  **文件扩展名**: `.zc`

## 功能

- **诊断**: 实时语法和类型错误。
- **跳转到定义**: 跳转到结构体、函数和变量的定义。
- **自动补全**:针对字段和方法的上下文感知建议。
- **悬停**: 悬停时显示类型信息和文档。