Neovim Debug Test And Data Plugins

Up: Plugin Atlas Down: platforms

This layer is for asking running code what it is doing, then asking tests whether that answer survives contact with reality.

Debugging

nvim-dap is the Debug Adapter Protocol core.

nvim-dap-virtual-text shows values near code while stepping.

nvim-dap-python adds Python debugger helpers.

telescope-dap.nvim lets Telescope browse debugger state.

nvim-dap-ui provides panes for scopes, stacks, watches, breakpoints, and the REPL. nvim-nio is async support for the UI.

one-small-step-for-vimkind is present but intentionally disabled. It is a parked option for debugging Lua.

Debuggers On NixOS

mason-nvim-dap.nvim is disabled on NixOS for the same reason Mason LSP is disabled. Debug adapters should come from the project shell.

For JavaScript, the config can use js-debug-adapter from $PATH on NixOS. On non-Nix systems it may use a Mason-managed adapter path.

{ pkgs, ... }:
 
{
  packages = with pkgs; [
    vscode-js-debug
    python312Packages.debugpy
  ];
}

Testing

neotest is the test runner surface. Adapters add language and framework support:

PluginTest world
neotest-pythonPython tests.
neotest-testthatR testthat.
neotest-vitestVitest.
neotest-jestJest.
neotest-playwrightPlaywright.

The custom setup can interactively choose a project test adapter and infer monorepo working directories.

Notebooks And Databases

jupynium.nvim bridges Neovim and Jupyter workflows. Its Python runtime should be treated like other tools: provided by a known environment, not documented with private local paths.

vim-dadbod, vim-dadbod-ui, and vim-dadbod-completion turn Neovim into a SQL workbench with query UI and completion.

Related: platforms, completion cockpit