This commit is contained in:
Nico
2025-04-07 23:06:16 +02:00
parent 0b2e29fa76
commit a764ae7695
14 changed files with 340 additions and 126 deletions

View File

@@ -1,53 +1,30 @@
local on_attach = function(_, bufnr)
return {
'neovim/nvim-lspconfig',
dependencies = { 'saghen/blink.cmp' },
local bufmap = function(keys, func)
vim.keymap.set('n', keys, func, { buffer = bufnr })
-- example using `opts` for defining servers
opts = {
servers = {
lua_ls = {},
nil_ls = {},
rust_analyzer = {}
}
},
config = function(_, opts)
local lspconfig = require('lspconfig')
for server, config in pairs(opts.servers) do
-- passing config.capabilities to blink.cmp merges with the capabilities in your
-- `opts[server].capabilities, if you've defined it
config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities)
lspconfig[server].setup(config)
end
end
bufmap('<leader>r', vim.lsp.buf.rename)
bufmap('<leader>a', vim.lsp.buf.code_action)
bufmap('gd', vim.lsp.buf.definition)
bufmap('gD', vim.lsp.buf.declaration)
bufmap('gI', vim.lsp.buf.implementation)
bufmap('<leader>D', vim.lsp.buf.type_definition)
bufmap('gr', require('telescope.builtin').lsp_references)
bufmap('<leader>s', require('telescope.builtin').lsp_document_symbols)
bufmap('<leader>S', require('telescope.builtin').lsp_dynamic_workspace_symbols)
bufmap('K', vim.lsp.buf.hover)
vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
vim.lsp.buf.format()
end, {})
end
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('coq').lsp_capabilities(capabilities) -- COQ spezifische Fähigkeiten
require('neodev').setup()
require('lspconfig').lua_ls.setup {
on_attach = on_attach,
capabilities = capabilities,
root_dir = function()
return vim.loop.cwd()
end,
cmd = { "lua-language-server" },
settings = {
Lua = {
workspace = { checkThirdParty = false },
telemetry = { enable = false },
},
}
-- -- example calling setup directly for each LSP
-- config = function()
-- local capabilities = require('blink.cmp').get_lsp_capabilities()
-- local lspconfig = require('lspconfig')
--
-- lspconfig['lua_ls'].setup({ capabilities = capabilities })
-- end
}
require('lspconfig').nil_ls.setup {
on_attach = on_attach,
capabilities = capabilities,
}
require('lspconfig').rust_analyzer.setup {
on_attach = on_attach,
capabilities = capabilities,
}