SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Lsp Open-Source Projects
-
coc.nvim
Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
kanagawa.nvim
NeoVim dark colorscheme inspired by the colors of the famous painting by Katsushika Hokusai.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
jupyterlab-lsp
Coding assistance for JupyterLab (code navigation + hover suggestions + linters + autocompletion + rename) using Language Server Protocol
-
KotlinLanguageServer
Kotlin code completion, diagnostics and more for any editor/IDE using the Language Server Protocol
-
elixir-ls
A frontend-independent IDE "smartness" server for Elixir. Implements the "Language Server Protocol" standard and provides debugger support via the "Debug Adapter Protocol"
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: I can't stand using VSCode so I wrote my own (it wasn't easy) | news.ycombinator.com | 2024-04-21As well as its own plugins Vim/NeoVim can use VSCode's LSPs, DAPs and extensions either directly or via plugins like CoC[1] and Mason[2].
I would be surprised if emacs couldn't do the same.
1. https://github.com/neoclide/coc.nvim
Project mention: JetBrains' unremovable AI assistant meets irresistible outcry | news.ycombinator.com | 2024-02-03I suggest looking for blog posts about this, you're gunnuh wanna pick out a plugin manager and stuff. It's kind of like a package manager for neovim. You can install everything manually but usually you manually install a plugin manager and it gives you commands to manage the rest of your plugins.
These two plugins are the bare minimum in my view.
https://github.com/nvim-treesitter/nvim-treesitter
Treesitter gives you much better syntax highlighting based on a parser for a given language.
https://github.com/neovim/nvim-lspconfig
This plugin helps you connect to a given language LSP quickly with sensible defaults. You more or less pick your language from here and copy paste a snippet, and then install the relevant LSP:
https://github.com/neovim/nvim-lspconfig/blob/master/doc/ser...
For Python you'll want pylsp. For JavaScript it will depend on what frontend framework you're using, I probably can't help you there.
pylsp itself takes some plugins and you'll probably want them. https://github.com/python-lsp/python-lsp-server
Best of luck! Happy hacking.
Templ for the templating engine. Although Go already have a decent templating engine, I'm planning to use Templ because it's more powerful and flexible. I really like this library and I'm planning to use it in my future projects.
Hello, I'm trying to use the sunset plugin to automatically switch my theme according to day light. I'm not sure how to use it with kanagawa theme
Project mention: jdtls debugging "Could not resolve java executable: Index 1 out of bounds for length 1" | /r/neovim | 2023-11-21I'm using lsp-zero and i followed this tutorial https://github.com/VonHeikemen/lsp-zero.nvim/blob/v2.x/doc/md/guides/setup-with-nvim-jdtls.md and i have essentially just copy pasted the code from there into ~/.config/nvim/lua/plugin/jdtls.lua
Project mention: What's this type of plugin called? (it shows the structure of code) | /r/neovim | 2023-05-30Must be lspsaga
Project mention: Beginner question: is there any coding standard for documenting Lua functions or tables emulating OOP? | /r/lua | 2023-06-01You can use LLS extension for VSCode. Documentation: https://github.com/LuaLS/lua-language-server/wiki/Annotations
https://github.com/hrsh7th/nvim-cmp This is an autocompletion engine https://github.com/nvim-treesitter/nvim-treesitter This allows NeoVim to install parsing scripts so NeoVim can do things like code highlighting. https://github.com/williamboman/mason.nvim Not strictly necessary, but allows you to access a repo of LSP, install them, and configure them for without you actively messing about in config files. https://github.com/neovim/nvim-lspconfig Also not strictly necessary, but vastly simplifies LSP setup. https://github.com/williamboman/mason-lspconfig.nvim This lets the above two plugins talk to each other more easily.
Links: - https://dotty.epfl.ch/ - https://scala-native.org/en/stable/ - https://www.scala-js.org/ - https://typelevel.org/ - https://zio.dev/ - https://github.com/scala-native/scala-native/pull/3120 - https://github.com/lampepfl/dotty/pull/16517 - https://dotty.epfl.ch/docs/reference/experimental/index.html - https://scala-cli.virtuslab.org/ - https://scalameta.org/metals/ - https://docs.scala-lang.org/scala3/guides/migration/compatibility-intro.html - https://www.scala-lang.org/blog/2023/04/18/faster-scalajs-development-with-frontend-tooling.html - https://www.scala-lang.org/blog/2022/08/17/long-term-compatibility-plans.html
Project mention: Use the builtin `listchars` option to implement minimalistic indent guides | /r/neovim | 2023-12-07Hey. The plugin I am using for the folding is nvim-ufo. If your workflow highly relies on folding features, this plugin will be the must-have. Trust me please. As for its config, you could refer to its README or my config.
However, many language clients are indeed sensitive to the latency of language servers like https://github.com/ray-x/lsp_signature.nvim and https://github.com/hrsh7th/nvim-cmp, and I do not have the ability to improve them.
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
Project mention: Kotlin is a much better language than Java even with all the new stuff Java has added. | /r/Kotlin | 2023-12-11There's a community-made one, but of course as much effort as has been put into it it's not as featureful as JetBrains's own stuff.
Project mention: What's this type of plugin called? (it shows the structure of code) | /r/neovim | 2023-05-30I tried aerial.nvim the other day and it's pretty cool. Haven't tried lspsaga yet so I'm not sure if it fits the same purpose.
No. Not even close. But it's getting better.
There are currently two worth mentioning:
ElixirLSP: https://github.com/elixir-lsp/elixir-ls
Elixir tools: https://www.elixir-tools.dev/
ElixirLSP is the older project, and has been around for a while. It does a lot, but has had sporadic issues over the years. Things like the debugger are a dog to get working, and the server itself will occasionally run into issues where it just doesn't want to work. It's always sort of focused on a subset of language server features, so don't expect much in the way of inline corrections. But it's got the essentials, formatting, basic linting, type hinting, on demand documentation, and primitive reference navigation
Elixir tools is a new up and comer, written by Mitchell Hanberg. It's aiming to be a more complete lsp, and has plugins in its "ecosystem" for most editors. Features have been arriving rapidly, starting with things like inline corrections and far more reliable linting, and recently growing autocomplete. One of the main selling points is the elixir-tools backend is a self contained binary, so it can mostly work independent of system Elixir/Erlang version, which was a frequent tripping point for ElixirLSP
Personally I use both at the same time, but plan to move to tools only when it's got all the features I need
Some details from https://github.com/Shopify/ruby-lsp
> NOTE: starting with v0.7.0, it is no longer recommended to add the ruby-lsp to the bundle. The gem will generate a custom bundle in .ruby-lsp/Gemfile which is used to identify the versions of dependencies that should be used for the application (e.g.: the correct RuboCop version).
Project mention: Looking for help in improving Typescript Eglot, Corfu, Orderless performance | /r/emacs | 2023-06-08You can try `lsp-bridge`, It's async so even if your language server is slow, the worst thing is that you won't see any completion candidate but can still keep typing: https://github.com/manateelazycat/lsp-bridge
Project mention: What's this type of plugin called? (it shows the structure of code) | /r/neovim | 2023-05-30This can be done using a statusline plugin like nvim-navic
Lsp related posts
-
An Experimental Cloudformation language server
-
Helix - Front-End Power
-
Go Beyond the Basics: Mastering Toast Notifications with Go and HTMX
-
RoR Debugbar
-
Templ – Build HTML with Go
-
Show HN: CPU Prices on eBay
-
A guide on Neovim's LSP client
-
A note from our sponsor - SaaSHub
www.saashub.com | 12 May 2024
Index
What are some of the best open-source Lsp projects? This list will help you:
Project | Stars | |
---|---|---|
1 | coc.nvim | 23,984 |
2 | nvim-lspconfig | 9,585 |
3 | templ | 6,584 |
4 | kanagawa.nvim | 3,667 |
5 | lsp-zero.nvim | 3,537 |
6 | lspsaga.nvim | 3,271 |
7 | lua-language-server | 3,015 |
8 | mason-lspconfig.nvim | 2,310 |
9 | Metals | 2,024 |
10 | nvim-ufo | 2,021 |
11 | lsp_signature.nvim | 1,916 |
12 | vim-config | 1,836 |
13 | jupyterlab-lsp | 1,733 |
14 | typescript-language-server | 1,714 |
15 | marksman | 1,697 |
16 | LSP | 1,604 |
17 | KotlinLanguageServer | 1,506 |
18 | aerial.nvim | 1,489 |
19 | elixir-ls | 1,391 |
20 | lspkind.nvim | 1,329 |
21 | ruby-lsp | 1,314 |
22 | lsp-bridge | 1,300 |
23 | nvim-navic | 1,299 |
Sponsored