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 touseopen
orusetab
, 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 thepreview
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 atitle
option. - Calling
.toggle()
on a widget multiple times should no longer append new
text each time, but replace the contents.
New Contributors
- @wookayin made their first contribution in #951
- @atouminet made their first contribution in #942
- @lervag made their first contribution in #974
- @MariaSolOs made their first contribution in #994
- @entropitor made their first contribution in #1016
- @NSteinhoff made their first contribution in #1024
- @Aeceon made their first contribution in #969
- @TheLeoP made their first contribution in #1043
Full Changelog: 0.6.0...0.7.0