Skip to content

0.7.0

Compare
Choose a tag to compare
@mfussenegger mfussenegger released this 11 Nov 07:59
· 82 commits to master since this release
0.7.0

What's Changed

Core

  • Added support for domain sockets/named pipes. See :help dap-adapter for
    more information. An example of how it can be used:
local dap = require("dap")
dap.adapters.cmake = {
  type = "pipe",
  pipe = "${pipe}",
  executable = {
    command = "cmake",
    args = {"--debugger", "--debugger-pipe", "${pipe}"}
  }
}
dap.configurations.cmake = {
  {
    name = "Build",
    type = "cmake",
    request = "launch",
  }
}
  • Adapters used with type=server and an executable will now receive a sigterm
    signal after the connection closes. This should ensure that there are no
    process leaks.
  • Debug adapters are no longer terminated if there is a debug session active
    when exiting vim and the debug session has a configuration with
    request=attach. This avoids terminating processes that were started outside
    of neovim.
  • If the debug adapter stops at a breakpoint, and the buffer containing the
    breakpoint is already open in a window, the window is now focused, unless the
    active window contains the REPL.
  • If the debug adapter stops at a breakpoint, switchbuf is set to useopen
    or usetab, and the same buffer is open in multiple windows, the focused
    window is now prioritized and will change to the breakpoint location.
  • Added some error handling improvements: Debug adapters exiting with a code
    not equal to 0 will return in a warning, and errors in configurations should
    now always propagate.
  • Increased the priority of the signs, to make sure breakpoints are shown even
    if neovim diagnostics are present.
  • Added a dap.ABORT value that can be used in configurations to abort the start
    of a session. This can be useful in combination with input prompts.

REPL

  • If using the arrow up/down keys, the cursor is now moved to the end of the line
  • Exposed a repl.execute function, to execute text as if entered in the REPL.
    This can be used in a mapping to evaluate a variable under the cursor, for
    example:
vim.keymap.set("n", "<leader>di", function()
  dap.repl.open()
  dap.repl.execute(vim.fn.expand("<cexpr>"))
end)
  • The REPL history is now no longer cleared when starting a new session, but
    there is now a maximum size of 100 entries.
  • The REPL should no longer loose focus on breakpoint stopped events.
  • Fixed an issue in the completion omnifunc implementation that could lead to
    inserting duplicate words. For example -exec b some| completed to -exec b -exec b some_function() instead of -exec b some_function()
  • Fixed some rendering issues that could lead to empty prompts interleaved in
    the output.
  • Variables marked as "lazy" by the debug adapter are now automatically
    resolved when expanding children to avoid having to expand them twice to see
    the full value.

Widgets

  • Added a listener option to the preview widget
  • Fixed some issues that could cause floating windows to not close when
    selecting an item - e.g in the frames or threads views.
  • Some more widgets will now show some information instead of being empty if
    there is no data available.
  • The hover widget will now always evaluate an expression, instead of looking
    it up in the loaded variables.
  • Variables marked as "lazy" by the debug adapter are now automatically
    resolved when expanding children to avoid having to expand them twice to see
    the full value.
  • The winopts of widgets now accept a title option.
  • Calling .toggle() on a widget multiple times should no longer append new
    text each time, but replace the contents.

New Contributors

Full Changelog: 0.6.0...0.7.0