add mason lsp recover file

This commit is contained in:
Nitload
2026-10-13 16:31:02 +08:00
parent f07f578dae
commit c8cdaa9966
3 changed files with 51 additions and 1 deletions
+3 -1
View File
@@ -19,7 +19,9 @@
```
3. 运行 `nvim`。首次启动会下载 `lazy.nvim` 和插件;需要时在 Neovim 中执行 `:Lazy sync`。
4. 用 `:Mason` 检查或安装所需语言工具。Mason 下载的程序不会随本仓库迁移。
4. 仓库中的 `mason-packages.txt` 记录了当前安装的 Mason 包名。在配置目录运行 `bash scripts/restore-mason.sh` 可按清单安装;也可以用 `:Mason` 手动检查。Mason 下载的程序不会随本仓库迁移。
清单只记录包名,不锁定版本。以后用 Mason 安装或卸载工具时,记得同步更新 `mason-packages.txt`。
`~/.local/share/nvim` 和 `~/.local/state/nvim` 中的插件、语言工具、缓存、日志和会话属于各设备的本地数据,不需要提交到此仓库。
+24
View File
@@ -0,0 +1,24 @@
asm-lsp
clang-format
clangd
cmakelang
cmakelint
codelldb
csharpier
fantomas
fsautocomplete
glsl_analyzer
json-lsp
lua-language-server
neocmakelsp
netcoredbg
omnisharp
pyright
ruff
rust-analyzer
shfmt
sqlfluff
stylua
taplo
tinymist
yaml-language-server
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/env bash
set -euo pipefail
config_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
packages=()
while IFS= read -r package || [[ -n $package ]]; do
[[ -z $package || $package == \#* ]] && continue
if [[ ! $package =~ ^[a-zA-Z0-9_-]+$ ]]; then
printf 'Invalid Mason package name: %s\n' "$package" >&2
exit 1
fi
packages+=("$package")
done < "$config_dir/mason-packages.txt"
if ((${#packages[@]} == 0)); then
printf 'No Mason packages listed.\n' >&2
exit 1
fi
nvim --headless \
-c 'lua require("lazy").load({ plugins = { "mason.nvim" } })' \
-c "MasonInstall ${packages[*]}" \
-c qall