local config = require("plugins.configs.lspconfig") local on_attach = function(client, bufnr) config.on_attach(client, bufnr) -- Keybinding to show hover documentation vim.api.nvim_buf_set_keymap(bufnr, 'n', 'h', 'lua vim.lsp.buf.hover()', { noremap = true, silent = true }) -- Keybinding to show diagnostics vim.api.nvim_buf_set_keymap(bufnr, 'n', 'e', 'lua vim.diagnostic.open_float(nil, { focusable = false, close_events = {"BufLeave", "CursorMoved", "InsertEnter", "FocusLost"}, border = "rounded", source = "always", prefix = " ", scope = "cursor" })', { noremap = true, silent = true }) -- Keybinding to show signature help vim.api.nvim_buf_set_keymap(bufnr, 'n', 's', 'lua vim.lsp.buf.signature_help()', { noremap = true, silent = true }) end local capabilities = config.capabilities local lspconfig = require("lspconfig") local servers = { "pyright", } for _, lsp in ipairs(servers) do lspconfig[lsp].setup({ on_attach = on_attach, capabilities = capabilities, filetypes = {"python"}, handlers = { ["textDocument/publishDiagnostics"] = function(_, result, ctx, config) config = config or {} config.virtual_text = false vim.lsp.diagnostic.on_publish_diagnostics(_, result, ctx, config) end, ["textDocument/signatureHelp"] = function() end -- Disable automatic signature help } }) end lspconfig.hls.setup{ on_attach = on_attach, capabilities = capabilities, filetypes = {'haskell', 'lhaskell', 'cabal'} } lspconfig.matlab_ls.setup{ on_attach = on_attach, capabilities = capabilities, filetypes = {'matlab'} }