local M = {} -- Mappings. -- See `:help vim.diagnostic.*` for documentation on any of the below functions local opts = { noremap = true, silent = true } vim.keymap.set("n", "e", vim.diagnostic.open_float, opts) vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts) vim.keymap.set("n", "q", vim.diagnostic.setloclist, opts) local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " } for type, icon in pairs(signs) do local hl = "DiagnosticSign" .. type vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl }) end require("neodev").setup() M.on_attach = require "lsp.attach" M.lsp_flags = require "lsp.flags" M.capabilities = require("cmp_nvim_lsp").default_capabilities() local servers = { "pyright", "ruff_lsp", "nil_ls", "lua_ls", "fortls", "yamlls", "vimls", "bashls" } for _, name in ipairs(servers) do require("lspconfig")[name].setup { on_attach = M.on_attach, flags = M.lsp_flags, capabilities = M.capabilities, } end require("null-ls").setup { sources = require "lsp.null_ls_sources", on_attach = M.on_attach, flags = M.lsp_flags, capabilities = M.capabilities, } return M