local utils = require("utils") require("mason").setup({}) require("mason-lspconfig").setup({ ensure_installed = { "lua_ls", "stylua", "intelephense", "eslint", "vtsls", "vue_ls", }, }) local telescope = require("telescope.builtin") vim.api.nvim_create_autocmd("LspAttach", { desc = "LspAttach", callback = function(args) local bufnr = args.buf local options = { buffer = bufnr } vim.lsp.inlay_hint.enable(true, { bufnr = bufnr }) vim.diagnostic.config({ virtual_text = true, signs = { text = { [vim.diagnostic.severity.ERROR] = "\u{F057}", [vim.diagnostic.severity.WARN] = "\u{F071}", [vim.diagnostic.severity.HINT] = "\u{F0EB}", [vim.diagnostic.severity.INFO] = "\u{F05A}", }, }, }) -- Navigation utils.nmap("gt", telescope.lsp_type_definitions, "Go to Type Definition", options) utils.nmap("gd", telescope.lsp_definitions, "Go to Definition", options) utils.nmap("gD", vim.lsp.buf.declaration, "Go to Declaration", options) utils.nmap("gi", telescope.lsp_implementations, "Go to Implementation", options) utils.nmap("gr", telescope.lsp_references, "References", options) utils.nmap("gs", telescope.lsp_document_symbols, "LSP Document Symbols", options) utils.nmap("gS", telescope.lsp_dynamic_workspace_symbols, "LSP Workspace Symbols", options) -- Info utils.nmap("gh", vim.lsp.buf.hover, "Hover Docs", options) utils.nmap("gH", vim.lsp.buf.signature_help, "Signature Help", options) -- Refactor utils.nmap("gn", vim.lsp.buf.rename, "Rename Symbol", options) utils.nmap("ga", vim.lsp.buf.code_action, "Code Action", options) utils.nmap("gf", vim.lsp.buf.format, "Format Buffer", options) -- Diagnostics utils.nmap("gl", vim.diagnostic.open_float, "Line Diagnostics", options) utils.nmap("gk", vim.diagnostic.goto_prev, "Previous Diagnostic", options) utils.nmap("gj", vim.diagnostic.goto_next, "Next Diagnostic", options) utils.nmap("gq", vim.diagnostic.setloclist, "Diagnostics to Loclist", options) end, })