return { { "neovim/nvim-lspconfig", init = function() local format = function() require("lazyvim.util").format({ force = true }) end local keys = require("lazyvim.plugins.lsp.keymaps").get() keys[#keys + 1] = { "lf", format, desc = "Format Document", has = "documentFormatting" } keys[#keys + 1] = { "lf", format, desc = "Format Range", mode = "v", has = "documentRangeFormatting" } vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" }) vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = "rounded" }) vim.diagnostic.config({ float = { border = "rounded" }, }) end, opts = { -- autoformat = false, diagnostics = { update_in_insert = true, }, servers = { yamlls = { settings = { yaml = { keyOrdering = false, }, }, }, rust_analyzer = { settings = { ["rust-analyzer"] = { checkOnSave = { command = "clippy", }, }, }, }, lua_ls = { -- mason = false, -- set to false if you don't want this server to be installed with mason -- Use this to add any additional keymaps -- for specific lsp servers root_dir = function() -- local Path = require('plenary.path') -- return Path:new(fname):parent().filename return vim.loop.cwd() end, -- ---@type LazyKeys[] -- keys = {}, settings = { Lua = { workspace = { checkThirdParty = false, }, completion = { callSnippet = "Replace", }, }, }, }, }, }, }, }