some tuning of lsp config

This commit is contained in:
Oliver Hartmann 2023-01-12 14:27:17 +01:00
parent 520858f6ac
commit b9c4ea5413

View File

@ -16,9 +16,32 @@ return {
require('mason-lspconfig').setup({ require('mason-lspconfig').setup({
automatic_installation = false, automatic_installation = false,
}) })
local lspconfig = require 'lspconfig'
local capabilities = require('cmp_nvim_lsp').default_capabilities() local capabilities = require('cmp_nvim_lsp').default_capabilities()
vim.api.nvim_set_hl(
0,
"LspReferenceText",
{ bold = true,
ctermbg = 'red',
bg = "#5a524c" }
)
vim.api.nvim_set_hl(
0,
"LspReferenceRead",
{ bold = true,
ctermbg = 'red',
bg = 'DarkGreen' }
)
vim.api.nvim_set_hl(
0,
"LspReferenceWrite",
{ bold = true,
ctermbg = 'red',
bg = 'DarkRed' }
)
OpenDiagFloat = function() OpenDiagFloat = function()
for _, winid in pairs(vim.api.nvim_tabpage_list_wins(0)) do for _, winid in pairs(vim.api.nvim_tabpage_list_wins(0)) do
if vim.api.nvim_win_get_config(winid).zindex then if vim.api.nvim_win_get_config(winid).zindex then
@ -73,39 +96,21 @@ return {
-- Set some keybinds conditional on server capabilities -- Set some keybinds conditional on server capabilities
if client.server_capabilities.documentFormattingProvider then if client.server_capabilities.documentFormattingProvider then
vim.keymap.set('n', '<space>f', vim.lsp.buf.format, vim.keymap.set('n', '<space>f', function()
vim.lsp.buf.format({ timeout_ms = 10000 })
end,
{ noremap = true, silent = false, desc = 'Format file', buffer = bufnr }) { noremap = true, silent = false, desc = 'Format file', buffer = bufnr })
end end
if client.server_capabilities.documentRangeFormattingProvider then if client.server_capabilities.documentRangeFormattingProvider then
vim.keymap.set('x', '<space>f', vim.lsp.buf.format, vim.keymap.set('x', '<space>f', function()
vim.lsp.buf.format({ timeout_ms = 10000 })
end,
{ noremap = true, silent = false, desc = 'Format visual', buffer = bufnr }) { noremap = true, silent = false, desc = 'Format visual', buffer = bufnr })
end end
-- Set autocommands conditional on server_capabilities -- Set autocommands conditional on server_capabilities
if client.server_capabilities.documentHighlightProvider then if client.server_capabilities.documentHighlightProvider then
vim.api.nvim_set_hl(
0,
"LspReferenceText",
{ bold = true,
ctermbg = 'red',
bg = "#5a524c" }
)
vim.api.nvim_set_hl(
0,
"LspReferenceRead",
{ bold = true,
ctermbg = 'red',
bg = 'DarkGreen' }
)
vim.api.nvim_set_hl(
0,
"LspReferenceWrite",
{ bold = true,
ctermbg = 'red',
bg = 'DarkRed' }
)
vim.api.nvim_create_augroup("lsp_document_highlight", { clear = true }) vim.api.nvim_create_augroup("lsp_document_highlight", { clear = true })
vim.api.nvim_clear_autocmds { buffer = bufnr, group = "lsp_document_highlight" }
vim.api.nvim_create_autocmd("CursorHold", { vim.api.nvim_create_autocmd("CursorHold", {
callback = vim.lsp.buf.document_highlight, callback = vim.lsp.buf.document_highlight,
buffer = bufnr, buffer = bufnr,
@ -129,17 +134,17 @@ return {
}, bufnr) }, bufnr)
end end
require('lspconfig')['pyright'].setup { lspconfig['pyright'].setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
} }
require('lspconfig')['groovyls'].setup { lspconfig['groovyls'].setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
} }
require('lspconfig')['cmake'].setup { lspconfig['cmake'].setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
} }
@ -152,7 +157,7 @@ return {
capabilities = clangd_capabilities, capabilities = clangd_capabilities,
on_attach = on_attach, on_attach = on_attach,
cmd = { 'clangd', '--compile-commands-dir=build_nvim' }, cmd = { 'clangd', '--compile-commands-dir=build_nvim' },
root_dir = require('lspconfig').util.root_pattern( root_dir = lspconfig.util.root_pattern(
'.clangd', '.clangd',
'.clang-tidy', '.clang-tidy',
'.clang-format', '.clang-format',
@ -180,7 +185,7 @@ return {
-- }, -- },
-- }) -- })
require('lspconfig')['jsonls'].setup { lspconfig['jsonls'].setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
} }
@ -188,7 +193,7 @@ return {
local lua_rtp = vim.split(package.path, ';') local lua_rtp = vim.split(package.path, ';')
table.insert(lua_rtp, 'lua/?.lua') table.insert(lua_rtp, 'lua/?.lua')
table.insert(lua_rtp, 'lua/?/init.lua') table.insert(lua_rtp, 'lua/?/init.lua')
require('lspconfig').sumneko_lua.setup { lspconfig.sumneko_lua.setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
settings = { settings = {
@ -216,12 +221,12 @@ return {
} }
} }
require('lspconfig')['dockerls'].setup { lspconfig['dockerls'].setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
} }
require('lspconfig')['yamlls'].setup { lspconfig['yamlls'].setup {
capabilities = capabilities, capabilities = capabilities,
on_attach = on_attach, on_attach = on_attach,
settings = { settings = {
@ -235,6 +240,7 @@ return {
null_ls.setup({ null_ls.setup({
sources = { sources = {
null_ls.builtins.code_actions.gitsigns, null_ls.builtins.code_actions.gitsigns,
-- null_ls.builtins.formatting.black,
null_ls.builtins.formatting.autopep8, null_ls.builtins.formatting.autopep8,
null_ls.builtins.formatting.prettier, null_ls.builtins.formatting.prettier,
null_ls.builtins.formatting.xmlformat, null_ls.builtins.formatting.xmlformat,
@ -242,6 +248,7 @@ return {
null_ls.builtins.formatting.isort, null_ls.builtins.formatting.isort,
null_ls.builtins.formatting.cmake_format, null_ls.builtins.formatting.cmake_format,
}, },
debug = true,
on_attach = on_attach, on_attach = on_attach,
capabilities = capabilities, capabilities = capabilities,
}) })