blob: 2433a1d6a0cd7e7d1ce16819e36c3511a2654f58 (
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
32
33
|
#+TITLE: Personal Emacs configurations
#+AUTHOR: Franck Cuny
#+EMAIL: franck@fcuny.net
* Goals
- keep it simple
- do within Emacs only what makes sense
* 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=).
|