-- NOTE: a table or true to enable, false to disable return { lua_ls = { settings = { diagnostics = { globals = { 'vim' } }, telemetry = { enabled = false }, hint = { enable = true }, workspace = { library = { [vim.fn.expand('$VIMRUNTIME/lua')] = true, [vim.fn.stdpath('config') .. '/lua'] = true, }, }, }, }, -- lua -- clangd = { -- cmd = { -- 'clangd', -- '--background-index', -- '--clang-tidy', -- '--header-insertion=iwyu', -- '--completion-style=detailed', -- '--function-arg-placeholders', -- '--fallback-style=llvm', -- }, -- root_dir = function(filename) -- return require('lspconfig/util').root_pattern( -- '.clang-tidy', -- '.clang-format', -- 'compile_commands.json', -- '.git' -- )(filename) or vim.fn.getcwd() -- end, -- init_options = { -- usePlaceholders = true, -- completeUnimported = true, -- clangdFileStatus = true, -- }, -- }, -- c/cpp -- neocmake = { -- root_dir = function(filename) -- return require('lspconfig/util').root_pattern( -- 'CMakePresets.json', -- 'CTestConfig.cmake', -- 'build', -- 'cmake', -- '.git' -- NOTE: git is last due to monorepos (so it tries to use build/cmake first) -- )(filename) or vim.fn.getcwd() -- end, -- }, -- pyright = { -- settings = { -- python = { -- pythonPath = '~/python/venv/bin/python', -- }, -- }, -- }, -- python -- bashls = true, -- bash -- taplo = true, -- toml -- lemminx = true, -- xml -- yamlls = true, -- yaml -- jsonls = true, -- json -- html = true, -- html -- cssls = true, -- css -- ts_ls = true, -- javascript/typescript -- astro = true, -- astro framework -- mdx_analyzer = true, -- markdown with JS I think -- marksman = true, -- Markdown LSP -- markdown_oxide = true, -- Markdown LSP but better -- gopls = { -- cmd = { 'gopls' }, -- filetypes = { 'go', 'gomod', 'gowork', 'gotmpl' }, -- root_dir = function(filename) -- return require('lspconfig/util').root_pattern('go.work', 'go.mod', '.git')(filename) -- end, -- settings = { -- gopls = { -- gofumpt = true, -- codelenses = { -- gc_details = false, -- generate = true, -- regenerate_cgo = true, -- run_govulncheck = true, -- test = true, -- tidy = true, -- upgrade_dependency = true, -- vendor = true, -- }, -- hints = { -- assignVariableTypes = false, -- compositeLiteralFields = false, -- compositeLiteralTypes = true, -- constantValues = true, -- functionTypeParameters = false, -- parameterNames = false, -- rangeVariableTypes = true, -- }, -- analyses = { -- fieldalignment = true, -- nilness = true, -- unusedparams = true, -- unusedwrite = true, -- useany = true, -- }, -- usePlaceholders = false, -- completeUnimported = true, -- staticcheck = true, -- directoryFilters = { '-.git', '-.vscode', '-.idea', '-.vscode-test', '-node_modules' }, -- semanticTokens = true, -- }, -- }, -- }, -- Go LSP -- jdtls = true, -- java -- sqlls = true, -- sqls = { -- on_attach = function(client, bufnr) -- require('sqls').on_attach(client, bufnr) -- end, -- settings = { -- sqls = { -- connections = { -- { -- driver = 'sqlite3', -- dataSourceName = '/home/kyren/projects/eko/server.db', -- }, -- }, -- }, -- }, -- }, }