RSCLS
A language server for rust-script.
How it works
Internally, RSCLS spawns an instance of rust-analyzer with no package configuration. Every time RSCLS receives textDocument/didOpen request from the client with rust-script, rust_script or rustscript language id, it changes the language id to rust, run rust-script to obtain the project directory and setup linkedProject for the project.
What doesn't work
- Does NOT work on templated rust-scripts, including those need
mainfunction added.- Current implementation doesn't translate file paths nor positions in a file. Since templated rust-scripts are not valid as rust program, we can't handle them directly.
- Commands may not work properly.
- Currently, minimum supported rust-script version is
0.28.0.
Install
cargo install rscls
You can alternatively clone this repository to your local, maybe modify some code and run
cargo install --path path-to-cloned-dir
to install locally modified version of the code.
Uninstall
cargo uninstall rscls
Example configuration
Here's an example configuration for nvim-lspconfig. I don't use other editor/IDEs, so please figure them out on your own. Pull requests are welcomed!
-- Assumes `autocmd BufEnter *.ers setlocal filetype=rustscript` or similar
local lsp_configs = require
if not lsp_configs.
lspconfig..
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed under the terms of both the Apache License, Version 2.0 and the MIT license without any additional terms or conditions.