-------------------------------------------------------------------------------- -- LSP -------------------------------------------------------------------------------- -- ts_ls vim.lsp.config("ts_ls", { settings = { typescript = { inlayHints = { includeInlayParameterNameHints = "all", includeInlayParameterNameHintsWhenArgumentMatchesName = false, includeInlayFunctionParameterTypeHints = true, includeInlayVariableTypeHints = true, includeInlayPropertyDeclarationTypeHints = true, includeInlayFunctionLikeReturnTypeHints = true, includeInlayEnumMemberValueHints = true, }, }, }, }) vim.lsp.enable("ts_ls") -- rust vim.lsp.config("rust_analyzer", { settings = { ["rust-analyzer"] = { diagnostics = { enable = true, experimental = { enable = true }, }, }, }, }) vim.lsp.enable("rust_analyzer") -- lua vim.lsp.config("lua_ls", { settings = { Lua = { diagnostics = { disable = { "missing-fields", "undefined-global", }, }, }, }, }) vim.lsp.enable("lua_ls") -- python vim.lsp.config("basedpyright", { settings = { basedpyright = { inlayHints = true, disableDiagnostics = true, disableOrganizeImports = true, analysis = { -- Ignore all files for analysis to exclusively use Ruff for linting -- Enable diagnostics -- ignore = { "*" }, diagnosticSeverityOverrides = { reportUnusedImport = "none", reportUnusedVariable = "none", reportAttributeAccessIssue = "none", reportUnusedClass = "none", reportUnusedFunction = "none", reportDuplicateImport = "none", reportArgumentType = "error", }, typeCheckingMode = "basic", }, }, }, }) vim.lsp.enable("basedpyright") vim.lsp.config("pylsp", { settings = { pylsp = { plugins = { -- use black as default formatter yapf = { enabled = false }, autopep8 = { enabled = false }, black = { enabled = true }, pycodestyle = { enabled = true, ignore = { "E203", "E701", "W503" }, maxLineLength = 88, }, }, }, }, }) -- latex vim.lsp.config("texlab", { settings = { texlab = { build = { executable = "latexmk", args = { "-lualatex", "-interaction=nonstopmode", "-outdir=build", }, onSave = true, }, }, }, }) vim.lsp.enable("texlab") -- bash vim.lsp.config("bashls", { settings = { bashIde = { shellcheckArguments = { "--exclude=SC1090,SC1091,SC2076,SC2164", }, }, }, }) vim.lsp.enable("bashls") -- cpp vim.lsp.config("clangd", { cmd = { "clangd", "--fallback-style=llvm", "--header-insertion=iwyu", "-j=4", }, }) vim.lsp.enable("clangd")