require("config.lazy") -- Enables LSPs vim.lsp.enable({ "lua_ls", "nixd" }) vim.api.nvim_create_autocmd("LspAttach", { callback = function(ev) local client = vim.lsp.get_client_by_id(ev.data.client_id) if client and client.supports_method('textDocument/inlayHint') then vim.lsp.inlay_hint.enable(true, { bufnr = ev.buf }) end local opts = { buffer = ev.buf } vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) vim.keymap.set("n", "r", vim.lsp.buf.rename, opts) vim.keymap.set("n", "a", vim.lsp.buf.code_action, opts) vim.keymap.set("n", "for", function() vim.lsp.buf.format({ async = true }) end, opts) vim.keymap.set("n", "e", vim.diagnostic.open_float, opts) vim.keymap.set("n", "[d", function() vim.diagnostic.jump({ count = -1 }) end) vim.keymap.set("n", "]d", function() vim.diagnostic.jump({ count = 1 }) end) end, }) vim.cmd.colorscheme("gruvbox")