toy-language-server VS nvim-lspconfig

Compare toy-language-server vs nvim-lspconfig and see what are their differences.


Example language server (LSP) implementation for a toy language (by bkomuves)
Our great sponsors
  • Zigi - Close all those tabs. Zigi will handle your updates.
  • Scout APM - Truly a developer’s best friend
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SonarQube - Static code analysis for 29 languages.
toy-language-server nvim-lspconfig
3 413
56 6,207
- 4.6%
0.0 9.5
over 1 year ago about 7 hours ago
Haskell Lua
BSD 3-clause "New" or "Revised" License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of toy-language-server. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-03-21.


Posts with mentions or reviews of nvim-lspconfig. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-12-02.
  • Is there any reliable alternative to coc.nvim?
    2 projects | | 2 Dec 2022
    Setting up nvim-lspconfig was not too difficult for me. You can basically copy and paste the provided config in the readme, install the LSP server for the language(s) of your choice, and you're good to go. If you want to add support for a new language, you just install that LSP. Not too much work.
  • Uninstall all neovim plugins
    4 projects | | 2 Dec 2022
    cd ~/.local/share/nvim git init . git submodule init mkdir site/pack/plugins/opt/ git submodule add --depth 1 site/pack/plugins/opt/nvim-lspconfig
  • Yet Another Nord Theme For Neovim :) Anyone want to try ?
    3 projects | | 1 Dec 2022
    Just using LSP 🤷‍♂️
  • Can someone please explain and help install LSP+Config as if I was 10?
    6 projects | | 1 Dec 2022 - The original repository claims to include LSP configurations, but has no LSP configurations as part of the repository. Clearly I'm an idiot and not making the connections.
    6 projects | | 1 Dec 2022
    it does tho. When you run require('lspconfig')[language-server-name].setup(), the plugin will use the server configuration stored in those files and merge it with any options you pass into setup to configure the specified language server.
    6 projects | | 1 Dec 2022
    Using nvim-lspconfig these are the steps. (Using intelephense as an example)
  • coc or nvim.lsp?
    11 projects | | 1 Dec 2022
    Getting the "basic LSP features" is easy with nvim-lspconfig. The minimal config can be like 20 lines of code, where 19 of those is setting up keybindings. It takes literally one line of code to connect the LSP server with Neovim.
  • Looking for a better IDE for Linux and Mac with inline errors and warnings
    5 projects | | 25 Nov 2022
    I ended up relying on two plugins: lspconfig for lsp setup and nvim-cmp for auto-complete.
  • When I insert tab, it expands to 4 spaces and not 2 as I have set
    2 projects | | 23 Nov 2022
    -- Mappings. -- See `:help vim.diagnostic.*` for documentation on any of the below functions local opts = { noremap=true, silent=true } vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) vim.keymap.set('n', 'q', vim.diagnostic.setloclist, opts) -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffer local on_attach = function(client, bufnr) -- Enable completion triggered by vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') -- Mappings. -- See `:help vim.lsp.*` for documentation on any of the below functions local bufopts = { noremap=true, silent=true, buffer=bufnr } vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, bufopts) vim.keymap.set('n', 'wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, bufopts) vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) vim.keymap.set('n', 'f', function() vim.lsp.buf.format { async = true } end, bufopts) end local lsp_flags = { -- This is the default in Nvim 0.7+ debounce_text_changes = 150, } require('lspconfig')['pyright'].setup{ on_attach = on_attach, flags = lsp_flags, } require('lspconfig')['tsserver'].setup{ on_attach = on_attach, flags = lsp_flags, } require('lspconfig')['sumneko_lua'].setup{ on_attach = on_attach, flags = lsp_flags, -- settings = { Lua = { runtime = { -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim). version = 'LuaJIT', }, diagnostics = { -- Get the language server to recognize the `vim` global. globals = {'vim'}, }, workspace = { -- Make the server aware of Neovim runtime files library = vim.api.nvim_get_runtime_file("", true), -- Someone wrote this helps if Lua Lsp is asking whether to create luassert. checkThirdParty = false, }, -- Do not send telemetry data containing a randomized but unique identifier. telemetry = { enable = false, }, }, }, }
  • How to have LSPs installed with Mason automatically hook up to cmp and work?
    3 projects | | 22 Nov 2022
    The plugin responsible for that is nvim-lspconfig

What are some alternatives?

When comparing toy-language-server and nvim-lspconfig you can also consider the following projects:

coc - Chroniques Oubliées Contemporain

nvim-lsp-installer - Further development has moved to!

coc.nvim - Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.

nvim-treesitter - Nvim Treesitter configurations and abstraction layer

clangd - clangd language server

ale - Check syntax in Vim asynchronously and fix files, with Language Server Protocol (LSP) support

null-ls.nvim - Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.

vim-lsp-settings - Auto configurations for Language Server for vim-lsp

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

nvim-jdtls - Extensions for the built-in LSP support in Neovim for

typescript-language-server - TypeScript & JavaScript Language Server

lspsaga.nvim - neovim lsp plugin