47 lines
1.3 KiB
Lua
47 lines
1.3 KiB
Lua
require("config.lazy")
|
|
|
|
-- Enables LSPs
|
|
vim.lsp.enable({
|
|
"lua_ls",
|
|
"nixd",
|
|
"angularls",
|
|
"ts_ls",
|
|
"sqls",
|
|
"jsonls",
|
|
"html",
|
|
"bashls",
|
|
"yamlls",
|
|
"dockerls",
|
|
"marksman",
|
|
"clangd",
|
|
"pyright",
|
|
"taplo",
|
|
"astro",
|
|
"volar",
|
|
"tailwindcss",
|
|
"cssls",
|
|
})
|
|
|
|
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", "<leader>gd", vim.lsp.buf.definition, opts)
|
|
vim.keymap.set("n", "<leader>gr", vim.lsp.buf.references, opts)
|
|
vim.keymap.set("n", "<leader>r", vim.lsp.buf.rename, opts)
|
|
vim.keymap.set("n", "<leader>a", vim.lsp.buf.code_action, opts)
|
|
vim.keymap.set("n", "<leader>lf", function()
|
|
vim.lsp.buf.format({ async = true })
|
|
end, opts)
|
|
vim.keymap.set("n", "<leader>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")
|