NVIM DAP View

Modern, minimalistic debugging UI for neovim

Installation

Requires neovim 0.11+

A nerd font is a soft requirement.

Via lazy.nvim

return {
    {
        "igorlfs/nvim-dap-view",
        ---@module 'dap-view'
        ---@type dapview.Config
        opts = {},
    },
}

For a better experience, consider adding nvim-dap-view as a dependency for nvim-dap. Why?

If you’re using a plugin that overrides the 'winbar' option, make sure to disable it for nvim-dap-view buffers.

Features

The plugin provides 7 “views” (aka “sections”) that (mostly) share the same window (so there’s clutter)

Watches view

watches view

Shows a list of user defined expressions, that are evaluated by debug adapter

  • Basic CRUD operations for expressions
  • Expand, collapse, copy or set the value of expressions and variables

Threads view

threads view

List all threads and their stack traces

  • Jump to a function in the call stack, switching the context to that call
  • Toggle subtle (hidden) frames

Breakpoints view

breakpoints view

List all breakpoints with full syntax highlighting, including treesitter and semantic tokens

Exceptions view

exceptions view

Control when the debugger should stop, outside of regular breakpoints (e.g., whenever an exception is thrown)

Scopes view

scopes view

Use the scopes widget provided by nvim-dap

REPL view

repl view

Use REPL provided by nvim-dap

Console view

You can also interact with the console (terminal), which is also provided by nvim-dap. By default, the console has its own window, but it can be configured to be shown with the other views. See details on the config page.

The console’s default height is resized to match your nvim-dap-view configuration. You can also either completely hide it (if it’s not being used at all, which is the case for some debug adapters) or hide it only during session initialization (which is nice when debugging tests, for instance).

Control bar

nvim-dap-view also provides a “non view” component: the control bar, which exposes some clickable buttons to control your session. It’s disabled by default. See details on how to enable and configure it here.

control bar

Usage

Learn about nvim-dap-view’s commands and keymaps to get started. For a more advanced setup, see the Recipes section in the sidebar. If, on the other hand, you need help getting started with nvim-dap, you can read the guide.

Customization

nvim-dap-view is fully customizable! Visit the config page to learn what you can do.