-------------------------------------------------------------------------------- -- 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')