LSP could have been better

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

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • language-server-protocol

    Defines a common protocol for language servers.

  • There was a lengthy discussion on this [1]. UTF-16 was used because it was convenient: it's what Microsoft API's and JavaScript already use (the latter being the language VS Code is written in).

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

  • python-lsp-server

    Fork of the python-language-server project, maintained by the Spyder IDE team and the community

  • I came at the tail end of https://github.com/python-lsp/python-lsp-server/issues/195. The possibility of me sponsoring a fix came up, and I’m on board with it, but the other contributor never replied.

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

    WorkOS logo
  • rust-analyzer

    A Rust compiler front-end for IDEs

  • Agree this is not a problem. rust-analyzer also includes a boatload of custom extensions. Here's how "query type of selected expression" works, for example:

    https://github.com/rust-lang/rust-analyzer/blob/master/docs/...

  • eglot

    A client for Language Server Protocol servers

  • Recently I stumbled upon this issue:

    https://github.com/joaotavora/eglot/discussions/1127

    I don't know enough about emacs and LSP to see the full picture, but it seems that both eglot's and corfu's maintainers, assumably very competent programmers, can't find a solution for this.

    I only skimmed the thread. My understanding is that LSP dumps a long list of completion candidates at once and they can't decide a cache strategy that works well with existing code...?

  • company-mode

    Modular in-buffer completion framework for Emacs

  • I'm curious to know what `company` does differently here than `corfu`. As a longtime user I couldn't be happier.

    https://company-mode.github.io/

  • pharo

    Pharo is a dynamic reflective pure object-oriented language supporting live programming inspired by Smalltalk.

  • vscode-debugadapter-node

    Debug adapter protocol and implementation for VS Code.

  • https://github.com/microsoft/vscode-debugadapter-node/issues...

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

    InfluxDB logo
  • iceberg

    Iceberg is the main toolset for handling VCS in Pharo. (by pharo-vcs)

  • The problem with the filesystem is that it privileges organization scheme which isn’t the best one for every editing task. This makes, for example, implementation inheritance hard because your class has a bunch of invisible code in it. But, it you could expand all the superclass methods into a single view and then have edits automatically integrated into the appropriate places, this wouldn’t be as much of a problem.

    Java’s filesystem hierarchy is a great example of a “fileout” format for the sort of environment I’m talking about. Another example here is smalltalk repositories generated by Iceberg: https://github.com/pharo-vcs/iceberg

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