If you put the cursor inside the brackets anywhere except on the first back-tick character and hit C-M-u (backward-up-list) the cursor is placed at the beginning of the current buffer and a scan error is echoed to the *Messages* buffer:
I tried to debug this, but I'm not great with lisp. I think it has to do with the fact that "plain" backward-sexp and haskell-backward-sexp don't agree on where to go when cursor is on the d in div. There is a comment in haskell-forward-sexp saying that:
Navigate backwards using plain `backward-sexp', assume that it skipped over at least one Haskell expression
If I switch to fundamental-mode I can see that this assumption doesn't hold if you call backward-sexp with the cursor on the d in div.
I would love to provide the patch, but I'm afraid I need help digging to locate the bug.
The bug is present in at least versions 20231115.1812 and 20240116.1718.
Consider the program:
If you put the cursor inside the brackets anywhere except on the first back-tick character and hit
C-M-u
(backward-up-list
) the cursor is placed at the beginning of the current buffer and a scan error is echoed to the*Messages*
buffer:I tried to debug this, but I'm not great with lisp. I think it has to do with the fact that "plain"
backward-sexp
andhaskell-backward-sexp
don't agree on where to go when cursor is on thed
indiv
. There is a comment inhaskell-forward-sexp
saying that:If I switch to
fundamental-mode
I can see that this assumption doesn't hold if you callbackward-sexp
with the cursor on thed
indiv
.I would love to provide the patch, but I'm afraid I need help digging to locate the bug.
The bug is present in at least versions 20231115.1812 and 20240116.1718.