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("mason").setup() require("mason-lspconfig").setup(require "config.mason_lspconfig") require("mason-null-ls").setup(require "config.mason_null_ls") require("mason-nvim-dap").setup() require("neodev").setup() M.on_attach = require "lsp.attach" M.lsp_flags = require "lsp.flags" M.capabilities = require("cmp_nvim_lsp").default_capabilities() require("mason-lspconfig").setup_handlers { function(server_name) require("lspconfig")[server_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, } require("mason-null-ls").setup_handlers() require("mason-nvim-dap").setup_handlers() return M