64 lines
1.7 KiB
Lua
64 lines
1.7 KiB
Lua
-- Setup Mason to automatically install LSP servers
|
|
require("mason").setup()
|
|
|
|
require("mason-lspconfig").setup({ automatic_installation = true })
|
|
|
|
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
|
|
|
vim.lsp.config("*", {
|
|
capabilities = capabilities,
|
|
})
|
|
|
|
-- Keymaps
|
|
vim.keymap.set("n", "<Leader>d", vim.diagnostic.open_float)
|
|
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev)
|
|
vim.keymap.set("n", "]d", vim.diagnostic.goto_next)
|
|
vim.keymap.set("n", "gd", vim.lsp.buf.definition)
|
|
vim.keymap.set("n", "gi", "<cmd>Telescope lsp_implementations<CR>")
|
|
vim.keymap.set("n", "gr", "<cmd>Telescope lsp_references<CR>")
|
|
vim.keymap.set("n", "K", vim.lsp.buf.hover)
|
|
vim.keymap.set("n", "<Leader>rn", vim.lsp.buf.rename)
|
|
|
|
-- Sign configuration
|
|
vim.fn.sign_define("DiagnosticSignError", { text = "", texthl = "DiagnosticSignError" })
|
|
vim.fn.sign_define("DiagnosticSignWarn", { text = "", texthl = "DiagnosticSignWarn" })
|
|
vim.fn.sign_define("DiagnosticSignInfo", { text = "", texthl = "DiagnosticSignInfo" })
|
|
vim.fn.sign_define("DiagnosticSignHint", { text = "", texthl = "DiagnosticSignHint" })
|
|
|
|
vim.diagnostic.config({
|
|
virtual_text = true,
|
|
signs = true,
|
|
underline = true,
|
|
update_in_insert = true,
|
|
severity_sort = true,
|
|
})
|
|
|
|
-- Emmet for HTML and JSX-style markup editing
|
|
vim.lsp.config("emmet_language_server", {
|
|
filetypes = {
|
|
"css",
|
|
"html",
|
|
"javascriptreact",
|
|
"less",
|
|
"sass",
|
|
"scss",
|
|
"typescriptreact",
|
|
},
|
|
})
|
|
|
|
vim.lsp.config("jsonls", {
|
|
settings = {
|
|
json = {
|
|
schemas = require("schemastore").json.schemas(),
|
|
},
|
|
},
|
|
})
|
|
|
|
vim.lsp.enable("intelephense")
|
|
vim.lsp.enable("ts_ls")
|
|
vim.lsp.enable("eslint")
|
|
vim.lsp.enable("html")
|
|
vim.lsp.enable("cssls")
|
|
vim.lsp.enable("jsonls")
|
|
vim.lsp.enable("emmet_language_server")
|