/nvim-dap

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

Primary LanguageLua

DAP (Debug Adapter Protocol)

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

Warning: This is in an early stage and not really usable yet.

Features

  • launch debug adapter
  • attach to debug adapter
  • toggle breakpoints
  • breakpoints with conditions
  • set function breakpoints
  • set exception breakpoints
  • step over, step into, step out
  • step back, reverse continue
  • Goto
  • restart
  • stop
  • evaluate expressions
  • REPL
  • threads, scopes and variables ui (via REPL commands)

screenshot

Motivation

Why another DAP implementation for Neovim if there is already Vimspector?

This project makes some different choices:

  • Uses the Lua API of Neovim, and therefore targets only Neovim instead of both Vim and Neovim.
  • Tries to follow a similar design as the LSP implementation within Neovim. The idea is to have an extendable core.

Out of scope

Debug adapter installations are out of scope of this project.

There may be a nvim-dap-configs project at some point, similar to nvim-lsp.

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.