Why LSP?

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

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • 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

  • 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

  • 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.

  • 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...

  • 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...

  • 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.

  • 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...

  • 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

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • 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

  • 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.

  • 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...

  • 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"

  • 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

  • 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

  • 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

  • SaaSHub

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

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