4个版本
0.2.2 | 2023年10月21日 |
---|---|
0.2.1 | 2023年6月22日 |
0.2.0 | 2023年6月12日 |
0.1.0 | 2023年4月9日 |
在文本编辑器中排名85
35KB
768 行
RSCLS
rust-script的语言服务器。
工作原理
内部,RSCLS以无包配置启动一个rust-analyzer实例。每次RSCLS从客户端收到带有textDocument/didOpen
请求时,且请求的语言ID为rust-script
、rust_script
或rustscript
,它将语言ID更改为rust
,运行rust-script以获取项目目录并设置项目的linkedProject
。
不工作的情况
- 不支持模板化的rust-scripts,包括那些需要添加
main
函数的。- 当前实现不转换文件路径和文件中的位置。由于模板化的rust-scripts作为rust程序无效,我们无法直接处理它们。
- 命令可能无法正确工作。
- 目前,最低支持的rust-script版本是
0.28.0
。
安装
cargo install rscls
您还可以将此仓库克隆到本地,也许修改一些代码并运行
cargo install --path path-to-cloned-dir
以安装本地修改后的代码版本。
卸载
cargo uninstall rscls
示例配置
以下是为nvim-lspconfig的示例配置。我不使用其他编辑器/IDE,所以请自行解决。欢迎提交拉取请求!
-- Assumes `autocmd BufEnter *.ers setlocal filetype=rustscript` or similar
local lsp_configs = require 'lspconfig.configs'
if not lsp_configs.rlscls then
lsp_configs.rlscls = {
default_config = {
cmd = { 'rscls' },
filetypes = { 'rustscript' },
root_dir = function(fname)
return lspconfig.util.path.dirname(fname)
end,
},
docs = {
description = [[
https://github.com/MiSawa/rscls
rscls, a language server for rust-script
]],
}
}
end
lspconfig.rlscls.setup {
settings = {
['rust-analyzer'] = {
imports = {
group = {
enable = true,
},
granularity = {
enforce = true,
group = "crate",
},
},
cargo = {
buildScripts = {
enable = true,
},
},
procMacro = {
enable = true,
},
},
}
}
贡献
除非您明确说明,否则您提交的任何贡献,根据Apache-2.0许可证的定义,将根据Apache许可证版本2.0和MIT许可证的条款双许可,没有任何附加条款或条件。
依赖项
~8–20MB
~272K SLoC