mason.nvim 是 nvim-lsp-installer 的下一代版本,现有的 nvim-lsp-installer 将不再维护,所以我们还是有必要升级一下的,本文将分享一下我的升级过程。
大家好,我是掘金小册 《Neovim 配置实战:从0到1打造自己的IDE》 的作者,关注➕私信我获取作者专属7折优惠码,谢谢各位支持。
好了开始正文,最近每次我们使用 :LspInstallInfo 打开 nvim-lsp-installer 的时候都会在最上边看到两行网址。
在这个网址中 作者介绍了 mason.nvim 项目的情况,简单来讲就是未来会用 mason.nvim 取代 nvim-lsp-installer,并且支持更多的 server 安装,不仅仅是LSP Server 还支持 DAP servers、 linters、formatters 等等超过 150 个包,100+ 种编程语言,并且升级也是非常简单的,下面就开始吧。
- 第一步卸载所有已经安装的Lsp servers,这是因为 mason.nvim 与 nvim-lsp-installer 的文件结构不兼容。确保卸载以释放磁盘空间。建议跟我上边一样截个图先,记住都装过什么,一会儿还要再装回来。运行
:LspUninstallAll命令卸载。
上图的目录就是之前安装 lsp servers 的目录,y 回车会清空这个目录。
- 打开
lua/plugins.lua替换 nvim-lsp-installer 插件为 mason.nvim 和 mason-lspconfig.nvim
use({ "williamboman/mason.nvim" })
use({ "williamboman/mason-lspconfig.nvim" })
保存自动安装,或者运行 :PackerSync
- 找到
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
重启!
输入命令 :Mason 哒哒!
和之前用法基本一致,多了 1,2,3,4,5 是上边TAB快捷键,按 2 即可切换到 LSP,可以在这里选择需要安装的,按 i 进行安装。
本文结束🙏