1个不稳定版本
0.1.0 | 2021年9月22日 |
---|
在开发工具分类中排名第2179
每月下载量34次
31KB
675 行
openscad-language-server
openscad-language-server是OpenSCAD的LSP(语言服务器协议)服务器。它为任何支持LSP客户端的编辑器提供IDE式功能,即大多数主流现代文本编辑器。
状态:按照IDE标准,功能相当基础,但功能齐全,远远超出内置的OpenSCAD编辑器提供的功能。主要在Linux上的lsp-mode和Emacs上进行了测试。
功能
- 上下文感知的自动完成
- 在完成时插入有用的代码片段
- 实时语法错误诊断信息
- 悬停时的函数/模块签名
- 处理
include
/use
(本地和库文件) - 在无效输入文件存在的情况下具有合理的鲁棒性
安装
openscad-language-server是用Rust编写的,不依赖于OpenSCAD。目前,为了使用它,您需要安装Rust工具链。
要从crates.io安装服务器(将二进制文件放入~/.cargo/bin/openscad-language-server
)
cargo install openscad-language-server
直接从存储库构建(将二进制文件放入克隆中的target/release/openscad-language-server
)
git clone https://github.com/dzhu/openscad-language-server
cd openscad-language-server
cargo build --release
用法
请参阅您的编辑器及其LSP客户端的文档,以配置它们以使用OpenSCAD文件的服务器二进制文件。服务器通过标准输入/输出进行通信。
致谢
OpenSCAD代码的解析由tree-sitter和tree-sitter-openscad处理。通过LSP进行通信由lsp-server处理。这些crate处理与外部世界交互的所有脏活累活,使得这个项目能够快速启动并专注于中间有趣的部分。
相关工作
- https://github.com/openscad/openscad/pull/3635 (将 LSP 服务器功能添加到 OpenSCAD 本身的 PR)
- https://github.com/Antyos/vscode-openscad (VSCode 插件)
- https://github.com/ncsaba/idea-openscad (IntelliJ IDE 插件)
- https://github.com/tralamazza/Sublime-OpenScad (Sublime Text 语法)
- https://github.com/Maxattax97/openscad-lsp (仅骨架,无功能)
依赖项
~6–15MB
~221K SLoC