diff --git a/lisp/progmodes/elixir-ts-mode.el b/lisp/progmodes/elixir-ts-mode.el index 1b57f4bb34d..fda76967335 100644 --- a/lisp/progmodes/elixir-ts-mode.el +++ b/lisp/progmodes/elixir-ts-mode.el @@ -591,7 +591,8 @@ "Tree-sitter font-lock feature list.") (defvar elixir-ts--thing-settings - `((sexp (not (or (and named + `((defun ,(rx bos "call" eos)) + (sexp (not (or (and named ,(rx bos (or "source" "keywords" "comment") eos)) (and anonymous @@ -798,7 +799,8 @@ Return nil if NODE is not a defun node or doesn't have a name." treesit-sexp-thing 'sexp ;; But still use 'list' for `down-list' and `up-list' treesit-sexp-thing-down-list 'list - treesit-sexp-thing-up-list 'list))) + treesit-sexp-thing-up-list 'list + hs-treesit-things '(or defun sexp)))) (derived-mode-add-parents 'elixir-ts-mode '(elixir-mode)) diff --git a/lisp/progmodes/heex-ts-mode.el b/lisp/progmodes/heex-ts-mode.el index 2cdec337821..e5cdd8d734d 100644 --- a/lisp/progmodes/heex-ts-mode.el +++ b/lisp/progmodes/heex-ts-mode.el @@ -209,7 +209,7 @@ Return nil if NODE is not a defun node or doesn't have a name." ;; Navigation. (setq-local treesit-defun-type-regexp - (rx bol (or "component" "tag" "slot") eol)) + (rx bos (or "component" "tag" "slot") eos)) (setq-local treesit-defun-name-function #'heex-ts--defun-name) ;; Imenu @@ -261,7 +261,8 @@ Return nil if NODE is not a defun node or doesn't have a name." ;; Enable the 'sexp' navigation by default (setq-local forward-sexp-function #'treesit-forward-sexp - treesit-sexp-thing 'sexp))) + treesit-sexp-thing 'sexp + hs-treesit-things 'list))) (derived-mode-add-parents 'heex-ts-mode '(heex-mode))