summary refs log tree commit diff
path: root/README.org
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=).