update dotfiles
This commit is contained in:
+64
-24
@@ -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 },
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
-- 启用所有 LSP(Rust 由 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,
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user