tower-lsp
steep
Our great sponsors
tower-lsp | steep | |
---|---|---|
7 | 9 | |
891 | 1,322 | |
- | - | |
5.3 | 9.5 | |
24 days ago | 10 days ago | |
Rust | Ruby | |
Apache License 2.0 | MIT License |
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.
-
tower_lsp client/server Document Sync
I was taking a look at the tower_lsp example here (https://github.com/ebkalderon/tower-lsp/blob/master/examples/stdio.rs) and had a question about how the document sync works between the client and the server.
-
how to make a lsp in rust ?
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
steep
-
A decent VS Code and Ruby on Rails setup
I saw no mention of RBS+Steep, the latter providing a LSP. I use it a lot and very much like it, although it's still young and needs love, but it's making good, steady progress! I've been very pleasantly surprised by some of the crazy things Steep can catch, completely statically!
You appear to be working on projects with Sorbet (which I tried to like but found it fell short in practice, notably outside of the app use case i.e it's mostly useless for gems) so it may be a tall order to try on those. Maybe you can give RBS+Steep a shot on some small project?
RBS: https://github.com/ruby/rbs
RBS collection (for those gems that don't ship RBS signatures in `sig`, integrates with bundler): https://github.com/ruby/gem_rbs_collection
Steep: https://github.com/soutaro/steep
VS Code: https://github.com/soutaro/steep-vscode
Sublime Text: https://github.com/sublimelsp/LSP
Vim (I'm working on it): https://github.com/dense-analysis/ale/pull/4671
-
Bringing more sweetness to ruby with sorbet types 🍦
1. Lack of LSP: Since this new type check solution is quite new (at the time of writing), we don't have nice editor support via LSP. Things like steep will probably solve this in the future, but it's not a reliable solution now. On the other hand, Sorbet has existed for many years on the market and already provides a lot of tools for code intelligence, you can see more in this blog post.
-
State of the Ruby language server (LSP) ecosystem / looking for suggestions
https://github.com/soutaro/steep Also a type checker. This one uses rbs files. Not sure what subset of LSP features it supports either.
-
steep VS sorbet - a user suggested alternative
2 projects | 17 Apr 2022
-
Open-sourcing the Sorbet VS Code Extension
What type-checkers can use RBS? I find steep? Any others? Does anyone have a sense of how much use RBS is getting (and compared to Sorbet?) in the wild?
-
rbs collection was released!
rbs collection feature integrates this repository and tools use RBS, such as rbs command, Steep, and TypeProf.
-
Which one is a better VS Code language server for Ruby?
steep also can be run as a langserver, which is then used in the vscode plugin for type checking.
-
Static Typing in Ruby 3 Gives Me a Headache (But I Could Grow to Like It)
Once you have those in place, you use a tool called Steep, which is the official type checker "blessed" by the Ruby core team. Steep evaluates your code against your signature files and provides a printout of all the errors and warnings (similar to any other type checker, TypeScript and beyond).
-
15 Resources I Learned Something From This Weekend
soutaro / steep
What are some alternatives?
tower - async fn(Request) -> Result<Response, Error>
solargraph - A Ruby language server.
kakoune-lsp - Kakoune Language Server Protocol Client
typeprof - An experimental type-level Ruby interpreter for testing and understanding Ruby code
rust-analyzer - A Rust compiler front-end for IDEs
vscode-solargraph - A Visual Studio Code extension for Solargraph.
tree-sitter - An incremental parsing system for programming tools
YARD - YARD is a Ruby Documentation tool. The Y stands for "Yay!"
react-relay - Relay is a JavaScript framework for building data-driven React applications.
rbs - Type Signature for Ruby
chumsky - Write expressive, high-performance parsers with ease.
vscode-ruby - Provides Ruby language and debugging support for Visual Studio Code