From 8d291e5c704c9d0ebae44d343ab8f3a464589967 Mon Sep 17 00:00:00 2001 From: "Basil L. Contovounesios" Date: Sat, 3 Jun 2023 11:25:05 +0100 Subject: [PATCH] Minor tree-sitter cleanups * lisp/treesit.el (treesit-fontify-with-override): Fix docstring grammar. Remove redundant precondition. * src/treesit.c (Ftreesit_parser_set_included_ranges): Fix typo in commentary. (treesit_predicate_equal, treesit_predicate_match) (treesit_predicate_pred): Avoid fixnum roundtrip by using list_length in place of Flength. Make error messages more accurate. (treesit_eval_predicates): Quote predicate names in error message. --- lisp/treesit.el | 5 ++--- src/treesit.c | 18 +++++++++--------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/lisp/treesit.el b/lisp/treesit.el index ea701ce1ff7..1dec830687f 100644 --- a/lisp/treesit.el +++ b/lisp/treesit.el @@ -894,13 +894,12 @@ treesit-fontify-with-override (start end face override &optional bound-start bound-end) "Apply FACE to the region between START and END. OVERRIDE can be nil, t, `append', `prepend', or `keep'. -See `treesit-font-lock-rules' for their semantic. +See `treesit-font-lock-rules' for their semantics. If BOUND-START and BOUND-END are non-nil, only fontify the region in between them." (when (or (null bound-start) (null bound-end) - (and bound-start bound-end - (<= bound-start end) + (and (<= bound-start end) (>= bound-end start))) (when (and bound-start bound-end) (setq start (max bound-start start) diff --git a/src/treesit.c b/src/treesit.c index 0af0e347694..ca627e1d7b3 100644 --- a/src/treesit.c +++ b/src/treesit.c @@ -1649,7 +1649,7 @@ DEFUN ("treesit-parser-set-included-ranges", TSRange *treesit_ranges = xmalloc (sizeof (TSRange) * len); struct buffer *buffer = XBUFFER (XTS_PARSER (parser)->buffer); - /* We can use XFUXNUM, XCAR, XCDR freely because we have checked + /* We can use XFIXNUM, XCAR, XCDR freely because we have checked the input by treesit_check_range_argument. */ for (int idx = 0; !NILP (ranges); idx++, ranges = XCDR (ranges)) @@ -2500,10 +2500,10 @@ treesit_predicate_capture_name_to_text (Lisp_Object name, treesit_predicate_equal (Lisp_Object args, struct capture_range captures, Lisp_Object *signal_data) { - if (XFIXNUM (Flength (args)) != 2) + if (list_length (args) != 2) { *signal_data = list2 (build_string ("Predicate `equal' requires " - "two arguments but only given"), + "two arguments but got"), Flength (args)); return false; } @@ -2535,10 +2535,10 @@ treesit_predicate_equal (Lisp_Object args, struct capture_range captures, treesit_predicate_match (Lisp_Object args, struct capture_range captures, Lisp_Object *signal_data) { - if (XFIXNUM (Flength (args)) != 2) + if (list_length (args) != 2) { *signal_data = list2 (build_string ("Predicate `match' requires two " - "arguments but only given"), + "arguments but got"), Flength (args)); return false; } @@ -2600,11 +2600,11 @@ treesit_predicate_match (Lisp_Object args, struct capture_range captures, treesit_predicate_pred (Lisp_Object args, struct capture_range captures, Lisp_Object *signal_data) { - if (XFIXNUM (Flength (args)) < 2) + if (list_length (args) < 2) { *signal_data = list2 (build_string ("Predicate `pred' requires " "at least two arguments, " - "but was only given"), + "but only got"), Flength (args)); return false; } @@ -2625,7 +2625,7 @@ treesit_predicate_pred (Lisp_Object args, struct capture_range captures, return !NILP (CALLN (Fapply, fn, nodes)); } -/* If all predicates in PREDICATES passes, return true; otherwise +/* If all predicates in PREDICATES pass, return true; otherwise return false. If everything goes fine, don't touch SIGNAL_DATA; if error occurs, set it to a suitable signal data. */ static bool @@ -2650,7 +2650,7 @@ treesit_eval_predicates (struct capture_range captures, Lisp_Object predicates, { *signal_data = list3 (build_string ("Invalid predicate"), fn, build_string ("Currently Emacs only supports" - " equal, match, and pred" + " `equal', `match', and `pred'" " predicates")); pass = false; } -- 2.34.1