Is there a difference between a LSP, code completer, and a linter?

This page summarizes the projects mentioned and recommended in the original post on /r/vim

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

    ShellCheck, a static analysis tool for shell scripts

  • Depending on your use case that might be more work than it's worth. For example, setting up LSP for C is totally worth it, but for a shell script just running a linter like shellcheck when you save might be good enough. As with everything, you need to find your personal balance between features and complexity.

  • clangd

    clangd language server

  • So what about servers and how do you get them? Examples of servers are clangd, Python language server by Palantir, Lua language server by Sumneko or Typescript language server. There is a handy list on the official website. Some clients can install servers for you, but some deem that as going too far. Some servers you can simply install through a package manager, some you will have to build from source. It really depends, I am using both kinds.

  • 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
  • LanguageClient-neovim

    Language Server Protocol (LSP) support for vim and neovim.

  • YCM is a client. The client is a plugin for Vim or Neovim, even the "built-in" client in Neovim is just a Lua plugin that is included with the editor, it's not really built-in. Examples of other clients:LanguageClient-neovim, vim-lsp, ale.

  • nvim-lspconfig

    Quickstart configs for Nvim LSP

  • Different clients have different features and need to be configured differently. I use the built-in Neovim client, which is really just a Lua library with some universal defaults. It does not included any server configurations, but there is nvim-lspconfig which has good default configurations for a number of servers.

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