blob: c7873cb32518d1c0e503837c1fb2c792ab53229e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#+TITLE: Personal configurations, scripts and tools.
* goals
- keep it simple
- configurations work the same way, everywhere
* emacs
** go
*** compile
You can compile a go binary using =M-x compile= inside a go buffer.
*** debugging
We need to install =dlv= first:
#+begin_src sh
go install github.com/go-delve/delve/cmd/dlv@latest
#+end_src
For =dap-mode= you also need to install =nodejs=. On arch you do this with
#+begin_src sh
sudo pacman -Syu nodejs
#+end_src
Then from emacs =M-x dap-go-set= to install the dependencies.
It's unclear as to why =node= is still in the picture since it looks like =dlv= seems to support =dap= directly (see [[https://github.com/go-delve/delve/issues/1515][delve/issues/1515]]).
To debug a program, you can set breakpoints where you need with =M-x dap-breakpoint-add=. To start the debugger hit =M-x dap-debug=.
If the program you debug needs argument, call =M-x dap-debug-edit-template=. Add the argument(s) you need to the program and evaluate the buffer (=C-c C-e=). Next time you call the debugger, the argument(s) will be passed to the program. You can also set environment variables if you need.
The binding =C-c d= will bring an hydra menu for debugging.
The REPL is not brought on by default when starting a debugging session, but =M-x dap-ui-repl= will start a REPL (the position is controlled by the variable =dap-ui-buffer-configurations=).
|