update dotfiles

This commit is contained in:
2026-07-08 23:01:50 +08:00
parent 1577638614
commit b4010fe910
17 changed files with 416 additions and 229 deletions
+64 -24
View File
@@ -16,10 +16,11 @@ return {
dependencies = { "williamboman/mason.nvim" },
opts = {
ensure_installed = {
"lua_ls", -- Lua
"bashls", -- Bash
"clangd", -- C/C++
"neocmake", -- CMake
"lua_ls", -- Lua
"bashls", -- Bash
"clangd", -- C/C++
"neocmake", -- CMake
-- rust_analyzer 由 rustup 管理,不通过 Mason
},
},
},
@@ -34,6 +35,8 @@ return {
"saghen/blink.cmp",
},
config = function()
local caps = require("blink.cmp").get_lsp_capabilities()
-- LSP 附加时自动开启 inlay hints
vim.api.nvim_create_autocmd("LspAttach", {
callback = function(args)
@@ -54,47 +57,84 @@ return {
end,
})
local caps = require("blink.cmp").get_lsp_capabilities()
-- Lua
vim.lsp.config("lua_ls", {
cmd = { "lua-language-server" },
vim.lsp.config['lua_ls'] = {
cmd = { 'lua-language-server' },
filetypes = { 'lua' },
root_markers = { '.luarc.json', '.luarc.jsonc', '.git', 'init.lua' },
capabilities = caps,
settings = {
Lua = {
runtime = { version = "Lua5.5" },
runtime = { version = "LuaJIT" },
workspace = { checkThirdParty = false },
diagnostics = { globals = { "vim" } },
},
},
})
}
-- Bash
vim.lsp.config("bashls", {
cmd = { "bash-language-server", "start" },
vim.lsp.config['bashls'] = {
cmd = { 'bash-language-server', 'start' },
filetypes = { 'sh', 'bash' },
root_markers = { '.git' },
capabilities = caps,
})
}
-- C/C++ (clangd)
vim.lsp.config("clangd", {
cmd = { "clangd" },
vim.lsp.config['clangd'] = {
cmd = { 'clangd' },
filetypes = { 'c', 'cpp', 'objc', 'objcpp' },
root_markers = { '.clangd', 'compile_commands.json', '.git' },
capabilities = caps,
})
}
-- CMake
vim.lsp.config("neocmake", {
cmd = { "neocmakelsp", "stdio" },
filetypes = { "cmake" },
root_dir = vim.fs.root(0, { ".git", "CMakeLists.txt" }),
single_file_support = true,
vim.lsp.config['neocmake'] = {
cmd = { 'neocmakelsp', 'stdio' },
filetypes = { 'cmake' },
root_markers = { 'CMakeLists.txt', '.git' },
capabilities = caps,
init_options = {
format = { enable = true },
lint = { enable = true },
},
})
}
-- 启用所有 LSPRust rustaceanvim 管理,不在此启用)
vim.lsp.enable({ "lua_ls", "bashls", "clangd", "neocmake" })
-- Rust (rust-analyzer)
vim.lsp.config['rust_analyzer'] = {
cmd = { 'rust-analyzer' }, -- 使用 rustup 的版本,更稳定
filetypes = { 'rust' },
root_markers = { 'Cargo.toml', '.git' },
capabilities = caps,
settings = {
["rust-analyzer"] = {
cargo = {
allFeatures = true,
loadOutDirsFromCheck = true,
buildScripts = {
enable = true,
},
},
checkOnSave = true,
diagnostics = {
enable = true,
},
procMacro = {
enable = true,
},
files = {
exclude = {
".direnv", ".git", ".jj", ".github", ".gitlab",
"bin", "node_modules", "target", "venv", ".venv",
},
watcher = "client",
},
},
},
}
-- 启用所有 LSP
vim.lsp.enable({ 'lua_ls', 'bashls', 'clangd', 'neocmake', 'rust_analyzer' })
end,
},
}