From: Yuan Fu Date: Wed, 7 May 2025 03:57:06 +0000 (-0700) Subject: Make treesit--simple-indent-eval more permissive (bug#78065) X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9c7ccaf951d99143d83131e781080ec54eb8e41d;p=emacs.git Make treesit--simple-indent-eval more permissive (bug#78065) * lisp/treesit.el (treesit--simple-indent-eval): Allow EXP to be anything, so higher-order indent presets can take anything as an argument: t, nil, symbols, keywords, etc. (cherry picked from commit 0b4eb525b69822c6b503982ef49980c72c8d0232) --- diff --git a/lisp/treesit.el b/lisp/treesit.el index 17b55362ab1..9cbf063be1d 100644 --- a/lisp/treesit.el +++ b/lisp/treesit.el @@ -2520,14 +2520,12 @@ the function." ;; `functionp'. ((alist-get exp treesit-simple-indent-presets)) ((functionp exp) exp) - ((symbolp exp) - (if (null exp) - exp - ;; Matchers only return lambdas, anchors only return - ;; integer, so we should never see a variable. - (signal 'treesit-indent-error - (list "Couldn't find the preset corresponding to expression" - exp)))) + ;; There are higher-order presets that take arguments, like + ;; (nth-sibling 1 t), so it's possible for exp to be something + ;; other than numbers and functions. Don't signal an error if + ;; exp isn't a function nor a number. In fact, allow exp to be + ;; any symbol or keyword, so users can define higher-order + ;; presets that takes keyword or symbol as arguments. (t exp))) ;; This variable might seem unnecessary: why split