| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 | local skipped_servers = {  "angularls",  "ansiblels",  "antlersls",  "ast_grep",  "azure_pipelines_ls",  "basedpyright",  "biome",  "ccls",  "cssmodules_ls",  "custom_elements_ls",  "denols",  "docker_compose_language_service",  "dprint",  "elp",  "ember",  "emmet_language_server",  "emmet_ls",  "eslint",  "eslintls",  "fennel_language_server",  "gitlab_ci_ls",  "glint",  "glslls",  "golangci_lint_ls",  "gradle_ls",  "graphql",  "hdl_checker",  "hydra_lsp",  "htmx",  "java_language_server",  "jedi_language_server",  "lexical",  "ltex",  "lwc_ls",  "mdx_analyzer",  "neocmake",  "nim_langserver",  "ocamlls",  "omnisharp",  "phpactor",  "psalm",  "pylsp",  "pylyzer",  "pyre",  "quick_lint_js",  "reason_ls",  "rnix",  "rome",  "rubocop",  "ruby_ls",  "ruby_lsp",  "ruff_lsp",  "scry",  "snyk_ls",  "solang",  "solc",  "solidity_ls",  "solidity_ls_nomicfoundation",  "sorbet",  "sourcekit",  "somesass_ls",  "sourcery",  "spectral",  "sqlls",  "sqls",  "standardrb",  "stimulus_ls",  "stylelint_lsp",  "svlangserver",  "swift_mesonls",  "templ",  "tflint",  "unocss",  "vacuum",  "verible",  "v_analyzer",  "vtsls",  "vuels",}local skipped_filetypes = { "markdown", "rst", "plaintext", "toml", "proto" }local join_paths = require("lvim.utils").join_pathsreturn {  templates_dir = join_paths(get_runtime_dir(), "site", "after", "ftplugin"),  ---@deprecated use vim.diagnostic.config({ ... }) instead  diagnostics = {},  document_highlight = false,  code_lens_refresh = true,  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"] = { "<cmd>lua vim.lsp.buf.hover()<cr>", "Show hover" },      ["gd"] = { "<cmd>lua vim.lsp.buf.definition()<cr>", "Goto definition" },      ["gD"] = { "<cmd>lua vim.lsp.buf.declaration()<cr>", "Goto Declaration" },      ["gr"] = { "<cmd>lua vim.lsp.buf.references()<cr>", "Goto references" },      ["gI"] = { "<cmd>lua vim.lsp.buf.implementation()<cr>", "Goto Implementation" },      ["gs"] = { "<cmd>lua vim.lsp.buf.signature_help()<cr>", "show signature help" },      ["gl"] = {        function()          local float = vim.diagnostic.config().float          if float then            local config = type(float) == "table" and float or {}            config.scope = "line"            vim.diagnostic.open_float(config)          end        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,}
 |