从 nvim-lsp-installer 升级到 mason.nvim 总共分几步

12,267 阅读2分钟

mason.nvim 是 nvim-lsp-installer 的下一代版本,现有的 nvim-lsp-installer 将不再维护,所以我们还是有必要升级一下的,本文将分享一下我的升级过程。

大家好,我是掘金小册 《Neovim 配置实战:从0到1打造自己的IDE》 的作者,关注➕私信我获取作者专属7折优惠码,谢谢各位支持。

Neovim课程介绍(1624x623).jpg

好了开始正文,最近每次我们使用 :LspInstallInfo 打开 nvim-lsp-installer 的时候都会在最上边看到两行网址。

image.png

在这个网址中 作者介绍了 mason.nvim 项目的情况,简单来讲就是未来会用 mason.nvim 取代 nvim-lsp-installer,并且支持更多的 server 安装,不仅仅是LSP Server 还支持 DAP servers、 linters、formatters 等等超过 150 个包,100+ 种编程语言,并且升级也是非常简单的,下面就开始吧。

  1. 第一步卸载所有已经安装的Lsp servers,这是因为 mason.nvim 与 nvim-lsp-installer 的文件结构不兼容。确保卸载以释放磁盘空间。建议跟我上边一样截个图先,记住都装过什么,一会儿还要再装回来。运行:LspUninstallAll 命令卸载。

image.png

上图的目录就是之前安装 lsp servers 的目录,y 回车会清空这个目录。

  1. 打开 lua/plugins.lua 替换 nvim-lsp-installer 插件为 mason.nvimmason-lspconfig.nvim
    use({ "williamboman/mason.nvim" })
    use({ "williamboman/mason-lspconfig.nvim" })

image.png

保存自动安装,或者运行 :PackerSync

  1. 找到 lua/lsp/setup.lua 删掉最上边的 nvim-lsp-installer 的配置部分
----------------------------------------删掉这部分
require("nvim-lsp-installer").setup({
  -- 自动安装 Language Servers
  automatic_installation = true,
})
----------------------------------------删掉这部分

修改为

-- :h mason-default-settings
require("mason").setup({
  ui = {
    icons = {
      package_installed = "✓",
      package_pending = "➜",
      package_uninstalled = "✗",
    },
  },
})

-- mason-lspconfig uses the `lspconfig` server names in the APIs it exposes - not `mason.nvim` package names
-- https://github.com/williamboman/mason-lspconfig.nvim/blob/main/doc/server-mapping.md
require("mason-lspconfig").setup({
  -- 确保安装,根据需要填写
  ensure_installed = {
    "sumneko_lua",
    "tsserver",
    "tailwindcss",
    "bashls",
    "cssls",
    "dockerls",
    "emmet_ls",
    "html",
    "jsonls",
    "pyright",
    "rust_analyzer",
    "taplo",
    "yamlls",
    "gopls",
  },
})

保存即可,mason 默认将 lsp 安装到新的位置 ~/.local/share/nvim/mason

image.png

重启!

image.png

输入命令 :Mason 哒哒!

image.png

和之前用法基本一致,多了 1,2,3,4,5 是上边TAB快捷键,按 2 即可切换到 LSP,可以在这里选择需要安装的,按 i 进行安装。

本文结束🙏