ITADN
pherrymason/c3-lsp · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

C3 语言的语言服务器。

Go

C3 语言](https://github.com/c3lang/c3c) 的 WIP LSP

目录

功能

支持的语言服务器功能:

  • 补全
  • 转到定义
  • 转到声明
  • 悬停
  • 签名帮助

此外,LSP 能够解析标准库符号信息(针对支持的 C3c 版本),从而在补全和悬停功能中使用。

用法

在文本编辑器 / IDE 中使用

通常,您会使用编辑器的插件,该插件会自动使用所需的参数运行服务器。
某些插件/扩展可能已经包含二进制文件,请查阅其文档。
如果未包含,它们可能允许您指定 lsp 二进制文件的路径,因此请下载 lsp 二进制文件并配置插件/扩展指向其位置。

wiki 中阅读更多。

独立使用

只需运行 c3lsp 即可启动服务器。
它支持以下选项:

  • help: 显示接受的选项。
  • send-reports: 如果启用(默认禁用),将向 Sentry 发送 crash 报告,以便轻松调试错误。
  • lang-version: 使用它来指定特定的 c3 语言版本。默认情况下,c3lsp 将选择最后支持的版本。

安装

该项目使用 Golang 编写,因此理论上可以构建到 Golang 支持的任何操作系统。
以下操作系统的预编译二进制文件可用:Linux、Windows 11 和 MacOs。

发布页面]查找最新构建的二进制文件

你也可以从源码构建:

  • 下载并安装 golang: https://go.dev/
  • 克隆此仓库
  • 运行 make build: 这将在 server/bin 文件夹中创建 c3lsp

项目目标

编写语言服务器协议 (LSP) 可能是一项复杂且具有挑战性的任务。为了管理这种复杂性,我们最初的重点是覆盖典型 LSP 实现的基本但必要的需求。

当前目标

当前的主要目标,是覆盖最核心的功能,即扫描项目中源代码内使用的符号的精确信息。
然后,IDE 可以利用这些信息来启用以下功能:

  • 转到定义: 导航到符号定义的确切位置。
  • 悬停信息: 在悬停于符号上时显示有关符号的详细信息。
  • 自动补全: 在输入时建议相关的符号和代码补全。

这些功能将通过提供准确且高效的代码导航和辅助,显著改善开发体验。

未来计划

一旦这些初始目标完成,我们将探索可以添加到项目中的额外功能,进一步增强其能力和实用性。

有用的链接: