lspkind-nvim VS mason.nvim

Compare lspkind-nvim vs mason.nvim and see what are their differences.

lspkind-nvim

vscode-like pictograms for neovim lsp completion items [Moved to: https://github.com/onsails/lspkind.nvim] (by onsails)

mason.nvim

Portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters. (by williamboman)
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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
lspkind-nvim mason.nvim
4 108
541 6,816
- -
6.2 7.7
about 2 years ago 5 days ago
Lua Lua
MIT License Apache License 2.0
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.

lspkind-nvim

Posts with mentions or reviews of lspkind-nvim. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-16.
  • Configurando Neovim para Java
    2 projects | dev.to | 16 Jul 2023
    local cmp = require 'cmp'; local lspkind = require 'lspkind' cmp.setup({ snippet = { expand = function(args) require('luasnip').lsp_expand(args.body) end }, mapping = cmp.mapping.preset.insert({ ['C-Space'] = cmp.mapping.complete(), [''] = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }), }), sources = cmp.config.sources({ { name = 'nvim_lsp' }, { name = 'buffer' }, }), formatting = { format = lspkind.cmp_format({ mode = 'symbol', -- show only symbol annotations maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters) ellipsis_char = '...', -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead (must define maxwidth first) -- The function below will be called before any actual modifications from lspkind -- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30)) before = function(entry, vim_item) return vim_item end }) } }) require('jdtls').start_or_attach(config)
  • Neovim - Workflow para Java, C# e JS/TypeScript (Atualização com Neovim 0.8 e LSP)
    28 projects | dev.to | 1 Jan 2023
    lspkind-nvim: plugin para adicionar ícones nas entidades de LSP (classe, método, snippet, etc) igual ao VS Code.
  • My Neovim setup for React, TypeScript, Tailwind CSS, etc
    34 projects | dev.to | 9 Aug 2022
    onsails/lspkind-nvim - VSCode-like pictograms
  • CMP acting up
    1 project | /r/neovim | 16 Jun 2022
    local cmp_status_ok, cmp = pcall(require, "cmp") if not cmp_status_ok then return end local lspkind_status_ok, lspkind = pcall(require, "lspkind") if not lspkind_status_ok then return end local check_backspace = function() local col = vim.fn.col(".") - 1 return col == 0 or vim.fn.getline("."):sub(col, col):match("%s") end local source_mapping = { nvim_lsp = "[LSP]", cmp_tabnine = "[TN]", buffer = "[Buffer]", path = "[Path]", } cmp.setup({ mapping = { [""] = cmp.mapping.select_prev_item(), [""] = cmp.mapping.select_next_item(), [""] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }), [""] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }), [""] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }), [""] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. [""] = cmp.mapping({ i = cmp.mapping.abort(), c = cmp.mapping.close(), }), -- Accept currently selected item. If none selected, `select` first item. -- Set `select` to `false` to only confirm explicitly selected items. [""] = cmp.mapping.confirm({ select = true }), [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() else fallback() end end, { "i", "s" }), [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() else fallback() end end, { "i", "s" }), }, formatting = { fields = { "kind", "abbr", "menu" }, format = lspkind.cmp_format({ mode = "symbol_text", -- options: 'text', 'text_symbol', 'symbol_text', 'symbol' maxwidth = 40, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters) -- The function below will be called before any actual modifications from lspkind -- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30)) before = function(entry, vim_item) vim_item.kind = lspkind.presets.default[vim_item.kind] local menu = source_mapping[entry.source.name] if entry.source.name == "cmp_tabnine" then if entry.completion_item.data ~= nil and entry.completion_item.data.detail ~= nil then menu = entry.completion_item.data.detail .. " " .. menu end vim_item.kind = "" end vim_item.menu = menu return vim_item end, }), }, sources = { { name = "nvim_lsp" }, { name = "cmp_tabnine" }, { name = "buffer" }, { name = "path" }, }, confirm_opts = { behavior = cmp.ConfirmBehavior.Replace, select = false, }, experimental = { ghost_text = false, }, }) local tabnine = require("cmp_tabnine.config") tabnine:setup({ max_lines = 1000, max_num_results = 20, sort = true, run_on_every_keystroke = true, snippet_placeholder = "..", ignored_file_types = { -- default is not to ignore -- uncomment to ignore in lua: -- lua = true }, show_prediction_strength = true, })

mason.nvim

Posts with mentions or reviews of mason.nvim. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-21.
  • I can't stand using VSCode so I wrote my own (it wasn't easy)
    10 projects | news.ycombinator.com | 21 Apr 2024
  • Using a venv with Neovim's Python LSP
    2 projects | dev.to | 5 Apr 2024
    I recently started coding with Neovim using kickstart.nvim as the template for my editor configuration. I downloaded the python-lsp-server package using Mason, but I was disappointed to discover that the IntelliSense on my third party dependencies didn't work. The LSP was resolving to my global Python installation, which did not have the packages from my virtual environment (venv) installed.
  • Do I need NeoVIM?
    11 projects | /r/neovim | 7 Dec 2023
    https://github.com/hrsh7th/nvim-cmp This is an autocompletion engine https://github.com/nvim-treesitter/nvim-treesitter This allows NeoVim to install parsing scripts so NeoVim can do things like code highlighting. https://github.com/williamboman/mason.nvim Not strictly necessary, but allows you to access a repo of LSP, install them, and configure them for without you actively messing about in config files. https://github.com/neovim/nvim-lspconfig Also not strictly necessary, but vastly simplifies LSP setup. https://github.com/williamboman/mason-lspconfig.nvim This lets the above two plugins talk to each other more easily.
  • Do I need a plugin manager ?
    3 projects | /r/neovim | 7 Dec 2023
    I'm using mason.nvim to install my dependencies, I've this snippet at nvim/plugin/mason.lua so after cloning my dotfiles I can just run:
  • Mason can't install gopls (or gofumpt, or goimports)
    2 projects | /r/neovim | 6 Dec 2023
    The suggestion from this thread fixed it for me. I just needed to unset GOOS and GOARCH then restart neovim.
  • Neovim documentation is pretty bad
    1 project | /r/neovim | 18 Jul 2023
    For instance, I'm trying to install rust-analyzer in lazyvim from https://github.com/williamboman/mason.nvim. The installation instructions are:
  • LazyVim
    32 projects | news.ycombinator.com | 16 Jul 2023
  • How do you enable semantic highlighting for Python?
    4 projects | /r/neovim | 7 Jul 2023
    I have pyright installed via mason which apparently support "semantic token highlighting" but have been having a hard time getting these colors to show up in a buffer. It seems Neovim has changed how it handles semantic highlighting a few times so there's still some conflicting information online. It's hard to know what's current and what's not. Any help would be greatly appreciated.
  • language server not installed or missing from path
    1 project | /r/neovim | 5 Jul 2023
    Use mason to install the language servers you want.
  • Why is nobody using CoC anymore?
    3 projects | /r/neovim | 3 Jul 2023
    Because null-ls.nvim & mason.nvim together do everything I wanted CoC for

What are some alternatives?

When comparing lspkind-nvim and mason.nvim you can also consider the following projects:

cmp-nvim-lsp - nvim-cmp source for neovim builtin LSP client

lazy-lsp.nvim - Neovim plugin to auto install LSP servers

lspsaga.nvim - improve neovim lsp experience [Moved to: https://github.com/nvimdev/lspsaga.nvim]

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

vscode-codicons - The icon font for Visual Studio Code

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

nvim-lspconfig - Quickstart configs for Nvim LSP

omnisharp-vim - Vim omnicompletion (intellisense) and more for C#

nvim-compe - Auto completion Lua plugin for nvim

formatter.nvim

nlsp-settings.nvim - A plugin for setting Neovim LSP with JSON or YAML files

neoformat - :sparkles: A (Neo)vim plugin for formatting code.