Was playing around with Elixir, installed elixir-mode
, but indentation wasn’t working.
About to give up, but took it as an opportunity to learn how to debug Elisp, and … whoa, it was effortless.
(debug-on-entry #'elixir-indent-line)
Hit Tab, and bang, right in the debugger, which is well-documented. Hit d
to continue execution, see every expression being evaluated.
Decided to add some “print statements” (yes, right within the ~/.emacs.d/elpa/elixir-mode-1.0.0/
sources!), which in this case was something like
(message "Debug: cur-indent computed = `%s', current-indentation = `%s'" cur-indent (current-indentation))
Had to iterate a few times, but it was trivially (load-file ...)
and hit Tab, watch the *Messages*
buffer, repeat.
Turned out to be a typo, one of the calls to (setq not-indented ...
was mis-spelled as (setq not-idented ...
Great, I thought, except … I found I was using an older version of the package, so the right fix here turned out to be … uninstall older version of elixir-mode
, install the new one, get on with life. But heh, I still feel like I “leveled up” in my Emacs use today 😀
P.S. the original error is preserved in this marmalade mirror.