43 lines
1.4 KiB
Lua
43 lines
1.4 KiB
Lua
return {
|
|
{
|
|
-- lsp的config
|
|
"neovim/nvim-lspconfig",
|
|
dependencies = {
|
|
"folke/neodev.nvim",
|
|
"hrsh7th/cmp-nvim-lsp",
|
|
},
|
|
config = function()
|
|
require 'neodev'.setup {}
|
|
|
|
local servers = {
|
|
lua_ls = require('lsp.lua'),
|
|
clangd = require('lsp.c'),
|
|
bashls = require('lsp.bash'),
|
|
basedpyright = require('lsp.basedpyright'),
|
|
yamlls = require('lsp.yaml'),
|
|
gopls = require('lsp.go'),
|
|
jsonls = require('lsp.json'),
|
|
}
|
|
|
|
-- capabilities 在此处统一注入,各 lsp/*.lua 不单独 require cmp_nvim_lsp
|
|
-- 避免模块层面 require 带来的隐式依赖
|
|
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
|
for server, config in pairs(servers) do
|
|
config.capabilities = capabilities
|
|
vim.lsp.config(server, config)
|
|
vim.lsp.enable(server)
|
|
end
|
|
|
|
G.map({
|
|
{ 'n', '<cs-r>', '<cmd>lua vim.lsp.buf.rename()<CR>' },
|
|
{ 'n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>' },
|
|
{ 'n', 'gh', '<cmd>lua vim.lsp.buf.hover()<CR>' },
|
|
{ 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>' },
|
|
{ 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>' },
|
|
{ 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>' },
|
|
{ 'n', '<cs-i>', '<cmd>lua vim.lsp.buf.format()<CR>' },
|
|
})
|
|
end
|
|
},
|
|
}
|