tower-lsp
vscode-extension-samples
Our great sponsors
tower-lsp | vscode-extension-samples | |
---|---|---|
7 | 31 | |
571 | 7,042 | |
- | 1.6% | |
3.2 | 8.7 | |
about 2 months ago | 4 days ago | |
Rust | TypeScript | |
Apache License 2.0 | GNU General Public License v3.0 or later |
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
vscode-extension-samples
-
AI Assisted Blog with Nuxt, GitHub Codespaces & Actions
VSCode CodeActions Sample
-
VSCode-WASM: Implement a first version of a WebShell
Not true of most compilers.
Can you design compilers that can do this? Sure, i was at IBM when we did visualage, which could do this in other ways, though not optimally.
Is it common? Not a chance.
Your claim that increasingly more modern languages have semantic highlighting in real time is simply false - most cannot real time semantic highlight even a 100k file on every keystroke. There are a very small number which can, and it's mostly by luck - they fall down on larger files because they have no incrementality. Meanwhile, this is trivial with tree-sitter for all languages because of it's optimality. If you want to see it in action - turn on semantic highlighting for vscode and type fast - most of the time you will lose syntax highlighting because things can't keep up. see, e.g., https://github.com/microsoft/vscode-extension-samples/issues...
Again, yes, you could make a compiler for every language which supports a mode that does what tree-sitter does. and people could carefully implement parsers/lexers in each of their favorite compilers and languages that support optimal incremental parsing in them. and then pay the cost of integrating 50 language specific ways of transforming these to work with the editor, basically reinventing what tree-sitter already did right. (As per above, the current semantic token and highlighting support does not resolve this).
You seem to really otherwise be complaining that you believe it does always generate correct parsers. Like I said, that seems totally orthogonal to anything about the speed issue, and if that's your real concern, have at it.
-
I made a VSCode extension: "markdown-table-rainbow"
Official sample extension (Decorator)
- Is there any way to (relatively easily) create syntax highlighting for my own programming language from ANTLR4 grammar?
-
Make VSCode's intellisense popup look more like Atom's
Official example: https://github.com/microsoft/vscode-extension-samples/tree/main/product-icon-theme-sample
- Discussion VSCode Extension Development for Markdown Linting
-
Debugging spawned child processes with breakpoints when developing an extension
I have a minimal example repo (pretty much the "helloworld-sample" example from Vscode) where I'm testing different ways to make the child process breakpoints to work. https://github.com/jsalli/vscode-extension-debugging-with-child-process-breakpoints
-
My first extension - XCode’s “// MARK” comments
The official guide is fine, they also have these examples
-
Language Server Protocol
The example they give uses Node Inter Process Communication (IPC) https://github.com/microsoft/vscode-extension-samples/blob/main/lsp-sample/server/src/server.ts
-
TIL: You can inject services into methods instead of the whole controller
This was my first thought. I occasionally run into really really good sample code that is quite hard to discover (e.g. https://github.com/microsoft/vscode-extension-samples). Not necessarily because I don't know the sample exists, but because I *don't know the feature is used in that sample*.
What are some alternatives?
Bracket-Pair-Colorizer-2 - Bracket Colorizer Extension for VSCode
hy-language-server - Hy Language Server built using Jedhy. works only under Hy1.0a1. For the recent version of Hy, please use https://github.com/sakuraiyuta/hyuga instead.
vscode-snippets-ranger - View and edit all of your snippets in one purty place! Yee-haw!!
rainbow-delimiters - Emacs rainbow delimiters mode
tower - async fn(Request) -> Result<Response, Error>
vscode-vsce - VS Code Extension Manager
kak-lsp - Kakoune Language Server Protocol Client
prism.el - Disperse Lisp forms (and other languages) into a spectrum of colors by depth
rust-analyzer - A Rust compiler front-end for IDEs
react-relay - Relay is a JavaScript framework for building data-driven React applications.
vscode-python - Python extension for Visual Studio Code
url-mapper-rs - A simple URL Mapper service built using Rust