mason.nvim VS null-ls.nvim

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

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)

null-ls.nvim

Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua. (by jose-elias-alvarez)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
mason.nvim null-ls.nvim
108 164
6,777 3,554
- -
8.2 0.0
15 days ago 9 months ago
Lua Lua
Apache License 2.0 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.

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

null-ls.nvim

Posts with mentions or reviews of null-ls.nvim. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-06.
  • cpp setting problem
    4 projects | /r/neovim | 6 Dec 2023
  • Being a bash developer in the 21st century
    4 projects | news.ycombinator.com | 22 Sep 2023
    you can use nvim then, it has shellcheck for diagnostics and formatting, like in vscode :)

    here the link to the config: https://github.com/jose-elias-alvarez/null-ls.nvim/blob/main...

  • Linting/formatting and LSP
    1 project | /r/neovim | 8 Sep 2023
    I use a lot of different languages generally and I'm running into issues around formatting. Is there any standard way to use LSP formatting by default and otherwise fallback to specific linter/formatting programs? I believe null-ls is the normal way of dealing with this, but since it's been archived, I'd rather not rely on it.
  • How to setup efm-langserver for pint formatter?
    3 projects | /r/neovim | 13 Jul 2023
    I've been using pint for formatting php files with null-ls.nvim. Few days ago null-ls.nvim has announced that the plugin will be archived in few months so I started migrating all my formatters and linter from null-ls to efm-langserver. I got other things such as prettier, black, isort, mypy, etc. working but can't get pint to work with php files: If I run pint via efm-langserver, everything is deleted from the buffer, and the saved file is formatted separately. How do I setup efm-langserver correctly to work with pint? Below is my config.yml for pint currently. yaml tools: pint: &pint format-command: "pint --no-interaction --quiet ${INPUT}" format-stdin: false languages: php: - <<: *pint Thank you.
  • Archiving Null-Ls
    1 project | news.ycombinator.com | 10 Jul 2023
  • null-ls will be archived
    1 project | /r/ThePrimeagenReact | 10 Jul 2023
    14 projects | /r/neovim | 9 Jul 2023
  • 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
  • Your favourite Neovim plugins?
    42 projects | /r/neovim | 21 Jun 2023
  • How can I get yapf, black, and other formatters working with pylsp?
    1 project | /r/neovim | 19 Jun 2023
    There is a good answer. I think you know lua and neovim config enough to pick things that you need. If you need a short answer, null-ls is the way.

What are some alternatives?

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

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

formatter.nvim

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

nvim-lspconfig - Quickstart configs for Nvim LSP

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

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

StyLua - An opinionated Lua code formatter

nvim-lint - An asynchronous linter plugin for Neovim complementary to the built-in Language Server Protocol support.

nvim-jdtls - Extensions for the built-in LSP support in Neovim for eclipse.jdt.ls

efm-langserver - General purpose Language Server