> However, if those functions are bound to `beginning-of-defun-function'
> and `end-of-defun-function',
Could you clarify?
`beginning-of-defun-function' is a variable holding a function.
Keys can be bound neither to that variable nor to the function it holds
(because it's not a command).
And functions usually aren't "bound" either.
Please ignore my wrong use of terminology. This is what I mean:
(keymap-set bash-ts-mode-map "C-M-a" #'sh-mode--treesit-beginning-of-defun)
(keymap-set bash-ts-mode-map "C-M-e" #'sh-mode--treesit-end-of-defun)
If the above code is evaluated as part of bash-ts-mode startup, invoking C-M-a/e does as intended by the new functions.
However, if the variables `beginning-of-defun-function' & `end-of-defun-function' are set as in:
(setq-local beginning-of-defun-function #'sh-mode--treesit-beginning-of-defun)
(setq-local end-of-defun-function #'sh-mode--treesit-end-of-defun)
C-M-a works as intended, but C-M-e with negative arguments does not.
--
João Paulo L. de Carvalho
Ph.D Computer Science | IC-UNICAMP | Campinas , SP - Brazil
Postdoctoral Research Fellow | University of Alberta | Edmonton, AB - Canada