Mason加速下载

Neovim 配置好 LSP 后可以极大的增强功能,其中 Mason 可以方便的管理和配置 LSP, 而 ltex-ls 可以实现离线latex, markdown等的语法检测,所以这是一个重要 LSP. 然而,在近几天使用 Neovim 打开 latex文件时总是报错如下:

1
JDK 24 - Cannot load or parse input stream of '/org/languagetool/rules/en/grammar.xml'

根据 https://github.com/languagetool-org/languagetool/issues/11125 的提示,将ltex-ls替换为ltex-ls-plus可以解决问题,同时后者是前者的增强版本也是一个更好的选择。但是在安装时发现ltex-ls-plus的体积非常大,使用Mason直接安装多次未成功。于是将Maso的默认下载工具调整为aria2, 实现了快速下载,最终成功安装ltex-ls-plus.

安装 aria2

1
sudo pacman -S aria

配置 Mason

设置如下:

~/.config/nvim/lua/lsp/mason.lua
1
2
3
4
5
6
7
require("mason").setup({
... ,
download = {
cmd = "aria2c",
args = { "--continue", "--out=$FILE", "$URL" }
},
})

为方便使用,我的完整文件内容展示如下:

~/.config/nvim/lua/lsp/mason.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
-- :h mason-default-settings
-- ~/.local/share/nvim/mason
--
local servers = {
lua_ls = require "lsp.lua", -- /lua/lsp/lua.lua
ltex = require "lsp.ltex", -- /lua/lsp/ltex.lua
}

require("mason").setup({
github = {
since 1.0.0
download_url_template = "https://github.com/%s/releases/download/%s/%s",
},
ui = {
icons = {
package_installed = "✓",
package_pending = "➜",
package_uninstalled = "✗"
}
},
download = {
cmd = "aria2c",
args = { "--continue", "--out=$FILE", "$URL" }
},
})

-- 添加安装的插件,使用Mason命令查询插件名称
require("mason-lspconfig").setup {
ensure_installed = {
"lua_ls",
"rust_analyzer",
-- "ltex_plus",
"pyright",
"vimls",
"texlab",
},
}