tower-lsp
rust-analyzer
Our great sponsors
tower-lsp | rust-analyzer | |
---|---|---|
7 | 119 | |
571 | 12,086 | |
- | 2.0% | |
3.2 | 9.9 | |
about 2 months ago | 4 days ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tower-lsp
-
What's everyone working on this week (22/2023)?
I am using nom / nom_locate to build the parser side because I've done a handful of other projects with it, and I plan to use tower-lsp to hook up the language server side.
-
State of the Ruby language server (LSP) ecosystem / looking for suggestions
I realize this might not be for everyone, but I'm writing it in Rust using Lib-ruby-parser and tower-lsp: two existing libraries that handle a bunch of the heavy lifting for me. I'm more productive in Rust than with Ruby at this point, despite doing Ruby full time for 15 years, plus I really really don't want to have to deal with a slow LSP--that was the whome impetus for this project. I started in the spring, made a bunch of headway, then backtracked to redo the internals to make it easier to handle monkeypatching, overriding/redefining of methods, etc. across your project.
-
Language Server Protocol
https://github.com/ebkalderon/tower-lsp is a generalized LSP implementation in a lower-level language (Rust) so you may get a better idea by reading through that repo. It seems that the server opens a TCP socket that the client later connects to, but I'm not really sure.
-
how to make a lsp in rust ?
A LSP is just an api implemented to Microsoft's LSP spec. You can implement that API however you wish but something like tower-lsp can do a lot of the heavy lifting for you.
Mine all use [tower-lsp](https://github.com/ebkalderon/tower-lsp/) for the LSP protocol stuff, and then either [Tree-sitter](https://github.com/tree-sitter/tree-sitter) or [Nom](https://github.com/Geal/nom). If I do another I'll probably try [Chumsky](https://github.com/zesterer/chumsky) which combines some of the advantages of both.
- tower-lsp 0.16.0 — Lightweight framework for building LSP servers
rust-analyzer
-
Any new Opensource projects in (rust) looking for contributors. I want to start my journey as an OSS contributor.
I've contributed to rust-analyzer and nushell and had a great experience in both! Tons of open issues with a huge range of difficulties, and the maintainers are really helpful in providing hints to get started.
-
I want to contribute in a big project
For something more concrete you can try and ask around on their zulip or browse their issues.
-
Microsoft is rewriting core Windows libraries in Rust
More info here: https://rust-analyzer.github.io/ and here: https://rust-analyzer.github.io/manual.html#installation
-
VS Code: How to get these two features?
You can submit feature requests in the repository: https://github.com/rust-lang/rust-analyzer/
-
[Help] Can't get rust-analyzer to be recognized by Helix
sh git clone https://github.com/rust-lang/rust-analyzer.git && cd rust-analyzer cargo xtask install --server
-
Emerging Rust GUI libraries in a WASM world
Thanks for the ideas! Separating out presentation crate into it's own crate sounds like a great idea. Re "temporarily stopping rust-analyzer", I came across this trick[0] to make RA use a different build path (trading off disk-space for speed, but I mean, disk space is cheap).
Re: cranelift, I gotta check that out! Thanks for the reminder!
[0] https://github.com/rust-lang/rust-analyzer/issues/6007#issue...
-
Diesel 2.0.4
I also filled a new rust-analyzer issue for the cases that remain broken here.
-
What's is a rusty way to implement sharable trees?
Arc (or Rc if single threaded) sounds like a good fit since you mention immutability and no parent-pointers. If the lack of parent pointers or contextual information gets frustrating, I just want to mention the "Red/Green trees" approach used by Roslyn and rust-analyzer (link) where the "green tree" stores the data using basic Arcs and child pointers only, but later on you can create a "red tree" rooted at any green node which provides parent pointers as you navigate through the tree.
-
'Smart' completion in Rust
Neovim has a LSP-Client built in, for Vim there are several plugins. For Rust, the LSP-Server is Rust Analyzer.
-
rust-analyzer churning at 100% CPU, never stopping
The vscode status bar button that shows rust-analyzer can be clicked now and it stops the server. I also found this commit that adds a cancel button to the notifications.
What are some alternatives?
vscode-rust - Rust extension for Visual Studio Code
intellij-rust - Rust plugin for the IntelliJ Platform
rustfmt - Format Rust code
sublime-rust - The official Sublime Text 3 package for the Rust Programming Language
coc-rust-analyzer - rust-analyzer extension for coc.nvim
eglot - A client for Language Server Protocol servers
typescript-language-server - TypeScript & JavaScript Language Server
vim-lsp-settings - Auto configurations for Language Server for vim-lsp
Neovim-from-scratch - 📚 A Neovim config designed from scratch to be understandable
tree-sitter-rust - Rust grammar for tree-sitter
intellij-lsp-server - Exposes IntelliJ IDEA features through the Language Server Protocol.
ale - Check syntax in Vim asynchronously and fix files, with Language Server Protocol (LSP) support