Why LSP?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB high-performance time series database
Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
influxdata.com
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
  1. lsp-mode

    Emacs client/library for the Language Server Protocol

    I've had a terrible experience with lsp-mode, gopls and Emacs 27. Minor issues like inconsistencies and CPU/RAM hogging that requires manual restarts, and the major one that made me stop using it is that Emacs would frequently crash when editing Go files.

    I reported this to lsp-mode, but they kicked the can over to Emacs[1], which I never bothered reporting. The fact this is now a combination of tools with no clear reporting path when something goes wrong is awful UX.

    Every few months I update the entire setup with hopes things improve, but eventually I always get the crashes. I would really like for this to work, as the DX when it does is great, but for me it's just not there yet.

    [1]: https://github.com/emacs-lsp/lsp-mode/issues/3242

  2. InfluxDB

    InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.

    InfluxDB logo
  3. ncm2

    :heart: Slim, Fast and Hackable Completion Framework for Neovim

    Assuming you're talking about this ncm[0], are you aware that ncm is a " completion framework for neovim", which is different from an LSP? ncm is either an LSP client itself, or, it is talking to neovim's internal LSP client, to get completions from LSPs.

    It's also important to note that LSPs almost always provide you more than auto completion (for example, go to definition, go to implementation, find references).

    Do let me know if you have more questions, neovim and LSPs are my "daily driver" as a dev, so to speak.

    [0] https://github.com/ncm2/ncm2

  4. typescript-language-server

    TypeScript & JavaScript Language Server

    One thing I have difficulty understanding is that given MS is (was?) the primary proponent of LSP, why do community projects like typescript-language-server need to exist ?

    Why can't arbitrary LSP clients connect directly to tsserver (maintained by MS) ?

    [1] https://github.com/typescript-language-server/typescript-lan...

  5. typescript-lan

    One thing I have difficulty understanding is that given MS is (was?) the primary proponent of LSP, why do community projects like typescript-language-server need to exist ?

    Why can't arbitrary LSP clients connect directly to tsserver (maintained by MS) ?

    [1] https://github.com/typescript-language-server/typescript-lan...

  6. KotlinLanguageServer

    Kotlin code completion, diagnostics and more for any editor/IDE using the Language Server Protocol

    Tangentially related: If a talented folks out there could please help out with (to the best of my knowledge) the only LSP for Kotlin out there[0], that would be amazing!

    I'm really attracted to Kotlin as a language[1], but, last I checked, IntelliJ is the only way to get great tooling for Kotlin, which is a show stopper for me since I've invested a lot into my neovim config.

    [0] https://github.com/fwcd/kotlin-language-server/projects/1

    [1] What attracts me to Kotlin is that it is statically typed, with a relatively expressive type system, great type inference, not verbose. Rust fulfills all of these, but sometimes I'd like to avoid thinking about borrow-checking and managing life times all together, and, Kotlin projects are much more likely to get contributors since it's an easier language to get into.

  7. nvim-lspconfig

    Quickstart configs for Nvim LSP

    > Why can't arbitrary LSP clients connect directly to tsserver (maintained by MS) ?

    As far as I'm informed, they can.

    For example, NeoVim language client has a pretty wide range of officially supported servers [0], including tsserver.

    [0] https://github.com/neovim/nvim-lspconfig/blob/master/doc/ser...

  8. AstroNvim

    AstroNvim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins

    I have been using neovim native lsp for a couple months for TS, JS & Go and overall have been very happy with how well it works.

    The issue is trash files is very weird and I doubt it has to do with lsp integration.

    Maybe tryout AstroNvim [1] which is a nice pre-integrated environment with a lot of sane defaults.

    [1] https://github.com/AstroNvim/AstroNvim

  9. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  10. intellij-lsp-server

    Discontinued Exposes IntelliJ IDEA features through the Language Server Protocol.

    I once had the idea of implementing an LSP server by embedding it as an IntelliJ plugin and backgrounding the IDE while doing the actual coding in Emacs.

    It kind of worked, but once I stopped needing to use Java for my job it became too much of a hassle to flesh out.

    https://github.com/Ruin0x11/intellij-lsp-server

  11. trouble.nvim

    🚦 A pretty diagnostics, references, telescope results, quickfix and location list to help you solve all the trouble your code is causing.

    I've just dug through the Neovim ecosystem trying to upgrade my 5 years old .vimrc and I feel it has come a long way since LSP became a thing.

    It can now actually act like real IDE as the editor knows about the code pretty well.

    https://github.com/folke/trouble.nvim

    Some features look pretty close to what you get in JetBrains.

    I can see some parts are kind of rough until you Google enough to fix/customize to your needs but if I take enough time, I might as well feel like its a decent replacement for a real IDE.

    For a starter, AstroNvim helped me figure out what the juicy plugins are these days.

    It seems NvChad and LunarVim are preconfigured competitors.

  12. language-server-protocol

    Defines a common protocol for language servers.

    > But this seems to be a VSCode issue.

    That’s a protocol issue! While LSP has a method to report a transient (edge triggered) error, it doesn’t have a way to report a persistent (level triggered) status. And to solve configuration problem, you really want a “status” concept - you need an LSP health indicator which is either red or green, and which you can click on to get info about what the server thinks the project is. There’s no such feature in LSP at the moment.

    https://github.com/microsoft/language-server-protocol/issues...

  13. leo-editor

    Leo is an Outliner, Editor, IDE and PIM written in 100% Python.

    Hmm maybe you mean:

    - Programming based on fragments, not documents (e.g. LEO https://leoeditor.com/)

    - Live programming (e.g. smalltalk environments)

    - ... where certain actions are not available, e.g. a PL geared towards speech recognition may not support "hover"

  14. avendish

    declarative polyamorous cross-system intermedia objects

    Working on a sunset of this with https://github.com/celtera/avendish - C++ reflection makes this very easy

  15. deno_std

    Discontinued deno standard modules

    Bartek from Deno here, this is mostly true. The runtime heavily relies on the Web standards, while Go was a heavy inspiration for Deno's standard library (deno_std [0]) in the early days. Since then, we've been relying on Web standards even more and the standard library started seeing more modules added that were based on popular npm modules.

    On another note: huge thanks for rust-analyzer, not only is it my main daily driver, but we also used it as a reference for implementation of "deno lsp" - the language server that ships with Deno.

    [0] https://github.com/denoland/deno_std

  16. vim-local-history

    A Neovim plugin for maintaining local history of files.

    Didn't realize I was talking to the person who worked both on IntelliJ Rust and rust-analyzer!

    This is the best case I've ever heard for IDEs. Thank you!!

    1 and 3 seem to me to require extensions/improvements to the LSP protocol.

    2, and 6 seem like one could build them off of treesitter (but I don't think anyone has as of yet).

    5 seems already implemented in a vim plugin[0].

    Thanks for 4 and 7 (the "myriad of small, polished details") also, I feel like I have to spend a week using an IDE to get a feel for them.

    [0] https://github.com/dinhhuy258/vim-local-history

  17. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • How to improve your vim/nvim coding experience with vim-easycomplete?

    23 projects | dev.to | 1 Mar 2022
  • How to Setup Vim for Kotlin Development

    12 projects | dev.to | 27 Dec 2024
  • Helix - Front-End Power

    8 projects | dev.to | 12 Mar 2024
  • Need help to set up the pbkit language server

    2 projects | /r/neovim | 21 Sep 2023
  • Option omnifunc is not set

    1 project | /r/neovim | 31 Aug 2023

Did you know that Lua is
the 18th most popular programming language
based on number of references?