local skipped_servers = { "angularls", "ansiblels", "antlersls", "ccls", "csharp_ls", "cssmodules_ls", "denols", "docker_compose_language_service", "ember", "emmet_ls", "eslint", "eslintls", "glint", "golangci_lint_ls", "gradle_ls", "graphql", "jedi_language_server", "ltex", "neocmake", "ocamlls", "phpactor", "psalm", "pylsp", "pyre", "quick_lint_js", "reason_ls", "rnix", "rome", "ruby_ls", "ruff_lsp", "scry", "solang", "solc", "solidity_ls", "sorbet", "sourcekit", "sourcery", "spectral", "sqlls", "sqls", "stylelint_lsp", "svlangserver", "tflint", "unocss", "verible", "vtsls", "vuels", } local skipped_filetypes = { "markdown", "rst", "plaintext", "toml", "proto" } local join_paths = require("lvim.utils").join_paths return { 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"] = { "lua vim.lsp.buf.hover()", "Show hover" }, ["gd"] = { "lua vim.lsp.buf.definition()", "Goto definition" }, ["gD"] = { "lua vim.lsp.buf.declaration()", "Goto Declaration" }, ["gr"] = { "lua vim.lsp.buf.references()", "Goto references" }, ["gI"] = { "lua vim.lsp.buf.implementation()", "Goto Implementation" }, ["gs"] = { "lua vim.lsp.buf.signature_help()", "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 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, }