#lsp #smart-contracts #polkadot #blockchain #language-server #ink #programming-language

bin+lib ink-lsp-server

ink! 智能合约编程语言的 Language Server Protocol (LSP) 实现

35 个版本

0.3.0 2024 年 5 月 3 日
0.2.28 2024 年 3 月 18 日
0.2.17 2023 年 12 月 24 日
0.2.12 2023 年 11 月 2 日
0.2.1 2023 年 7 月 22 日

#22 in #ink

每月 42 次下载

MIT/Apache

1.5MB
37K SLoC

ink! 语言服务器

ink! 智能合约编程语言的 Language Server Protocol (LSP) 实现。

它实现了 Language Server Protocol (LSP),并作为后端提供语言支持功能,如诊断错误、代码完成建议、代码/意图操作和悬停内容给 IDE、代码编辑器和其它开发工具。

它使用 语义分析器 作为引擎,通过

  • 将 LSP 请求转换为语义分析器接口调用。
  • 将语义分析结果转换为相应的 LSP 类型。

它还使用 rust-analyzer 的 lsp-server 包来处理 LSP 协议握手和消息解析,以及 lsp-types 包来定义 LSP 类型。

安装

选项 1:Cargo (通过 crates.io)

运行

cargo install ink-lsp-server

选项 2:从源码构建

运行

git clone https://github.com/ink-analyzer/ink-analyzer.git
cd ink-analyzer
cargo build --bin ink-lsp-server --release

将编译的二进制文件(命名为 ink-lsp-server)从 target/release 目录复制到您喜欢的安装位置,确保二进制文件可执行,并且安装位置包含在 PATH 环境变量中。

使用方法

安装的墨水语言服务器二进制文件可以与任何LSP客户端一起使用,这些客户端可以配置为使用可执行命令启动LSP服务器(即ink-lsp-server二进制文件的路径)并可以使用stdio(标准输入/标准输出)作为消息传输。

虽然一些编辑器/IDE具有本机/内置的LSP客户端(例如Neovim),但大多数LSP客户端是编辑器/IDE的插件/扩展

文档

二进制文档

ink-lsp-server二进制文件帮助文本。

Language Server Protocol (LSP) implementation for the ink! smart contract programming language.

Usage: ink-lsp-server

Options:
  -h, --help     Print help
  -V, --version  Print version

库文档

https://docs.rs/ink-lsp-server/latest/ink_lsp_server/

或者,您可以从项目根目录运行以下命令来本地访问库文档

cargo doc -p ink-lsp-server --open

测试

您可以从项目根目录运行以下命令来运行所有核心功能的单元和集成测试

cargo test -p ink-lsp-server

许可协议

根据您的选择,许可协议为MIT或Apache-2.0协议,具体请参阅MITApache-2.0许可证。

贡献

除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交以供包含在作品中的任何贡献,应按上述方式双许可,不附加任何额外条款或条件。

依赖项

约11–24MB
约325K SLoC