/nvim-dap

Debug Adapter Protocol client implementation for Neovim (>= 0.5)

Primary LanguageLuaGNU General Public License v3.0GPL-3.0

DAP (Debug Adapter Protocol)

nvim-dap is a Debug Adapter Protocol client implementation for Neovim (>= 0.5)

Warning: This is in an early stage. It targets Neovim HEAD and therefore things may break.

Features

  • launch debug adapter
  • attach to debug adapter
  • toggle breakpoints
  • breakpoints with conditions
  • logpoints
  • set function breakpoints
  • set exception breakpoints
  • step over, step into, step out
  • step back, reverse continue
  • Goto
  • restart
  • stop
  • pause
  • evaluate expressions
  • REPL (incl. commands to show threads, frames and scopes)

screenshot

Extensions

Known extensions are listed in the Wiki.

Goals

The goal of nvim-dap is to provide a basic debugger for Neovim to be used with Debug Adapters implementing the Debug Adapter Protocol.

Another goal is for nvim-dap to be usable as a client library for DAP to be used by other plugins. Other plugins should be able to either extend the UI (like nvim-dap-virtual-text), or to build configuration discovery functionality. For example nvim-jdtls integrates with nvim-dap, it dynamically adds debug configurations and contains functionality that allows users to debug individual test cases.

Non-Goals

  • Debug adapter installations are out of scope. It's not the business of an editor plugin to re-invent a package manager. Use your system package manager. Use Nix. Use Ansible.

  • Vim support. It's not going to happen. Use vimspector instead.

Alternatives

Installation

  • Requires Neovim HEAD/nightly
  • nvim-dap is a plugin. Install it like any other Vim plugin.
  • Call :packadd nvim-dap if you install nvim-dap to 'packpath'.

Usage

See :help dap and the Debug-Adapter Installation wiki. Keep in mind that the APIs are subject to change.