| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 | local skipped_servers = {  "angularls",  "ansiblels",  "ccls",  "csharp_ls",  "cssmodules_ls",  "denols",  "ember",  "emmet_ls",  "eslint",  "eslintls",  "golangci_lint_ls",  "gradle_ls",  "graphql",  "jedi_language_server",  "ltex",  "ocamlls",  "phpactor",  "psalm",  "pylsp",  "quick_lint_js",  "reason_ls",  "rome",  "ruby_ls",  "scry",  "solang",  "solc",  "solidity_ls",  "sorbet",  "sourcekit",  "sourcery",  "spectral",  "sqlls",  "sqls",  "stylelint_lsp",  "svlangserver",  "tflint",  "verible",  "vuels",}local skipped_filetypes = { "markdown", "rst", "plaintext", "toml" }local join_paths = require("lvim.utils").join_pathsreturn {  templates_dir = join_paths(get_runtime_dir(), "site", "after", "ftplugin"),  diagnostics = {    signs = {      active = true,      values = {        { name = "DiagnosticSignError", text = lvim.icons.diagnostics.Error },        { name = "DiagnosticSignWarn", text = lvim.icons.diagnostics.Warning },        { name = "DiagnosticSignHint", text = lvim.icons.diagnostics.Hint },        { name = "DiagnosticSignInfo", text = lvim.icons.diagnostics.Info },      },    },    virtual_text = true,    update_in_insert = false,    underline = true,    severity_sort = true,    float = {      focusable = false,      style = "minimal",      border = "rounded",      source = "always",      header = "",      prefix = "",      format = function(d)        local code = d.code or (d.user_data and d.user_data.lsp.code)        if code then          return string.format("%s [%s]", d.message, code):gsub("1. ", "")        end        return d.message      end,    },  },  document_highlight = false,  code_lens_refresh = true,  float = {    focusable = true,    style = "minimal",    border = "rounded",  },  on_attach_callback = nil,  on_init_callback = nil,  automatic_configuration = {    ---@usage list of servers that the automatic installer will skip    skipped_servers = skipped_servers,    ---@usage list of filetypes that the automatic installer will skip    skipped_filetypes = skipped_filetypes,  },  buffer_mappings = {    normal_mode = {      ["K"] = { vim.lsp.buf.hover, "Show hover" },      ["gd"] = { vim.lsp.buf.definition, "Goto Definition" },      ["gD"] = { vim.lsp.buf.declaration, "Goto declaration" },      ["gr"] = { vim.lsp.buf.references, "Goto references" },      ["gI"] = { vim.lsp.buf.implementation, "Goto Implementation" },      ["gs"] = { vim.lsp.buf.signature_help, "show signature help" },      ["gl"] = {        function()          local config = lvim.lsp.diagnostics.float          config.scope = "line"          vim.diagnostic.open_float(0, config)        end,        "Show line diagnostics",      },    },    insert_mode = {},    visual_mode = {},  },  buffer_options = {    --- enable completion triggered by <c-x><c-o>    omnifunc = "v:lua.vim.lsp.omnifunc",    --- use gq for formatting    formatexpr = "v:lua.vim.lsp.formatexpr(#{timeout_ms:500})",  },  ---@usage list of settings of nvim-lsp-installer  installer = {    setup = {      ensure_installed = {},      automatic_installation = {        exclude = {},      },    },  },  nlsp_settings = {    setup = {      config_home = join_paths(get_config_dir(), "lsp-settings"),      -- set to false to overwrite schemastore.nvim      append_default_schemas = true,      ignored_servers = {},      loader = "json",    },  },  null_ls = {    setup = {      debug = false,    },    config = {},  },  ---@deprecated use lvim.lsp.automatic_configuration.skipped_servers instead  override = {},  ---@deprecated use lvim.lsp.installer.setup.automatic_installation instead  automatic_servers_installation = nil,}
 |