Skip to content

[plugins] Debugging and test-running are the one gap across 7 configured LSP servers #329

Description

@stanfish06

Checked against all prior [plugins]-style issues (open and closed, searched for "dap"/"neotest" — zero hits) to confirm this doesn't overlap #312 or earlier suggestions.

The gap

lua/config/lsp.lua enables seven language servers — luals, pyright+pyrefly, clangd, ts_ls, rust_analyzer, gopls, sourcekit — and lua/config/plugin_config.lua/plugins.lua layer on conform.nvim (formatting) and nvim-lint (linting) for most of the same languages. That's a deliberately polyglot, LSP-heavy setup. But there is no debug adapter and no test-runner integration anywhere in the config (grep -ri "dap\|neotest\|debugger" lua/ returns nothing) — running or stepping through code still means dropping to an external terminal.

1. mfussenegger/nvim-dap + rcarriga/nvim-dap-ui

Core DAP client plus the standard UI (breakpoints, scopes/variables, stack frames, REPL). Per-language adapters are a separate, incremental install (nvim-dap-python for pyright/pyrefly, codelldb for rust_analyzer/clangd, delve config for gopls, vscode-js-debug for ts_ls) so this can be adopted one language at a time rather than all at once. Ties directly into the existing snacks.nvim install, which already ships an optional dap-aware layout helper.

2. nvim-neotest/neotest

Unified test-running UI (run nearest test / file / suite, inline pass/fail signs, summary panel) with per-language adapters (neotest-python, neotest-rust, neotest-go, neotest-jest/neotest-vitest). Complements conform.nvim/nvim-lint — those check style and correctness statically, neotest is the missing piece that actually executes the test suite, and reuses the same "small adapter per language" adoption path as nvim-dap above.

Recommended action

Not urgent, no forcing function — flagging because it's the one workflow area a 7-language config has left completely untouched. If adopted, nvim-dap-ui and neotest's summary panel both want a sidebar; worth deciding up front whether either reuses snacks.nvim's window/layout primitives (already installed) instead of adding a second floating-window library.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions