+++ /dev/null
-return {
- -- lspconfig
- {
- "neovim/nvim-lspconfig",
- ---@class PluginLspOpts
- opts = function()
- local keys = require("lazyvim.plugins.lsp.keymaps").get()
- -- TODO: setup a new mapping for this
- -- { "gr", "<cmd>Telescope lsp_references<cr>", desc = "References" },
- keys[#keys+1] = { "gr", false }
-
- return {
- diagnostics = {
- underline = true,
- update_in_insert = false,
- virtual_text = {
- spacing = 4,
- source = "if_mani",
- prefix = "●",
- },
- severity_sort = true,
- signs = {
- text = {
- [vim.diagnostic.severity.ERROR] = " ",
- [vim.diagnostic.severity.WARN] = " ",
- [vim.diagnostic.severity.HINT] = " ",
- [vim.diagnostic.severity.INFO] = " ",
- },
- },
- },
- inlay_hints = { enabled = false, },
- codelens = { enabled = false, },
- document_highlight = { enabled = true, },
- capabilities = {
- workspace = {
- fileOperations = {
- didRename = true,
- willRename = true,
- },
- },
- },
- format = {
- formatting_options = nil,
- timeout_ms = nil,
- },
- -- Automatically format on save
- -- autoformat = false,
- -- LSP Server Settings
- ---@type lspconfig.options
- servers = {
- lua_ls = {
- settings = {
- Lua = {
- workspace = { checkThirdParty = false, },
- codeLens = { enable = true, },
- completion = { callSnippet = "Replace", },
- doc = { privateName = { "^_" }, },
- hint = {
- enable = true,
- setType = false,
- paramType = true,
- paramName = "Disable",
- semicolon = "Disable",
- arrayIndex = "Disable",
- },
- diagnostics = {
- disable = { "missing-fields", },
- },
- },
- },
- },
- -- Add clangd extensions
- -- https://github.com/p00f/clangd_extensions.nvim
- },
- -- you can do any additional lsp server setup here
- -- return true if you don't want this server to be setup with lspconfig
- ---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
- setup = {
- -- example to setup with typescript.nvim
- -- tsserver = function(_, opts)
- -- require("typescript").setup({ server = opts })
- -- return true
- -- end,
- -- Specify * to use this function as a fallback for any server
- -- ["*"] = function(server, opts) end,
- },
- }
- end,
- },
-
- -- cmdline tools and lsp servers
- {
-
- "williamboman/mason.nvim",
- cmd = "Mason",
- keys = { { "<leader>cm", "<cmd>Mason<cr>", desc = "Mason" } },
- opts = {
- ensure_installed = {
- "stylua",
- "shfmt",
- -- "flake8",
- },
- },
- ---@param opts MasonSettings | {ensure_installed: string[]}
- config = function(_, opts)
- require("mason").setup(opts)
- local mr = require("mason-registry")
- local function ensure_installed()
- for _, tool in ipairs(opts.ensure_installed) do
- local p = mr.get_package(tool)
- if not p:is_installed() then
- p:install()
- end
- end
- end
- if mr.refresh then
- mr.refresh(ensure_installed)
- else
- ensure_installed()
- end
- end,
- },
-}