go-delve / delve

Delve is a debugger for the Go programming language.
MIT License
22.37k stars 2.13k forks source link

Support `dlv types` from DAP (the same way `types` is supported in the command line `dlv` REPL) #3729

Open rehmsen opened 1 month ago

rehmsen commented 1 month ago

Some Delve error messages ask users to run specific commands, for example when a type is not found (e.g. type assertion .(any)), users get a message

use 'types' for a list of valid types

These error messages are also shown to users of the DAP protocol (e.g. via VSCode). The way to invoke commands via DAP is to send them as evaluate request, escaped with dlv, like dlv help. These are configured here: https://github.com/go-delve/delve/blob/7c7265f4e68a333bb084217e7b7ae065024e428b/service/dap/command.go#L81

As you can see, only three commands are supported, while command line Delve supports a few dozen. I think it would be good to support at least the ones we reference from error messages, like types.

  1. What version of Delve are you using (dlv version)? 1.22.1
  2. What version of Go are you using? (go version)? go1.23-20240419-RC02
  3. What operating system and processor architecture are you using? Linux, x86_64