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