There is no shortage of Rust tutorials on building new languages; but it is hard to use a language without decent IDE support.
Are there any Rust tutorials on writing a lsp server for a new language ?
There is no shortage of Rust tutorials on building new languages; but it is hard to use a language without decent IDE support.
Are there any Rust tutorials on writing a lsp server for a new language ?
There aren't many tutorials on building IDE support for a language in general, and it can be harder than building a compiler.
But generally, writing an IDE plugin in Rust is done just like in any other language (unlike compilers, they don't usually have bytecode or cyclic IRs), and building a LSP server is done just like using any other language. There is the lsp-types crate that helps with the all around.
You can inspect the code of rust-analyzer, it is pretty well-written but uses advanced stuff like Salsa.
I don't know about you, but I learned compilers on toy languages, not rustc. Is there anything simpler than rust-analyzer that you would recommend ?
I don't know specifically of any tutorials, but there are some good examples,
besides the examples dir in tower-lsp
the nix-language-server small goes a bit beyond the tower examples in having mutable state for files, but i believe still on an older version of tower-lsp
a language server for the nano_rust.rs parser that comes with chumsky tower-lsp-boilerplate which uses quite a few lsp features, but still remains relatively small and readable...
That said matklad does have a youtube explaining rust-analyzer to help familiarize and get into the rust-analyzer code base.
I don't really know of any outright tutorials though