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

设置如下:

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

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

 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",
   },
}