{ ... }: { programs.nixvim.lsp = { inlayHints.enable = true; servers = { # Python basedpyright = { enable = true; settings.settings.basedpyright = { analysis = { autoImportCompletions = true; autoSearchPaths = true; inlayHints = { callArgumentNames = true; }; diagnosticMode = "openFilesOnly"; reportMissingImports = true; reportMissingParameterType = true; reportUnnecessaryComparison = true; reportUnnecessaryContains = true; reportUnusedClass = true; reportUnusedFunction = true; reportUnsedImports = true; reportUnsusedVariables = true; typeCheckingMode = "recommended"; useLibraryCodeForTypes = true; }; }; }; # Shell scripting bashls.enable = true; # Web development html.enable = true; jsonls.enable = true; yamlls.enable = true; ts_ls.enable = true; # Query languages jqls.enable = true; # Lua lua_ls = { enable = true; settings.settings.diagnostics.globals = [ "vim" ]; }; # Documentation marksman.enable = true; # Scala metals = { enable = true; settings.settings = { bloopSbtAlreadyInstalled = true; defaultBspToBuildTool = true; enableBestEffort = true; excludedPackages = [ "akka.actor.typed.javadsl" "com.github.swagger.akka.javadsl" ]; initOptions = { statusBarProvider = "on"; }; inlayHints = { typeParameters.enable = true; hintsInPatternMatch.enable = true; }; mcpClient = "claude"; serverVersion = "latest.snapshot"; showImplicitArguments = true; showImplicitConversionsAndClasses = true; showInferredType = true; startMcpServer = true; superMethodLensesEnabled = true; useGlobalExecutable = true; }; }; # Nix nil_ls.enable = true; nixd.enable = true; # Rust rust_analyzer.enable = true; # Swift/iOS development sourcekit = { enable = true; settings = { cmd = [ "xcrun" "sourcekit-lsp" ]; }; }; # Typst tinymist.enable = true; }; }; }