Minor tree-sitter cleanups

* lisp/treesit.el (treesit-fontify-with-override): Fix docstring
grammar.  Remove redundant precondition (bug#64052).
* 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.
This commit is contained in:
Basil L. Contovounesios 2023-06-03 11:25:05 +01:00
parent ac57358762
commit 8ffe8422c5
2 changed files with 11 additions and 12 deletions

View file

@ -894,13 +894,12 @@ signals the `treesit-font-lock-error' error if that happens."
(start end face override &optional bound-start bound-end) (start end face override &optional bound-start bound-end)
"Apply FACE to the region between START and END. "Apply FACE to the region between START and END.
OVERRIDE can be nil, t, `append', `prepend', or `keep'. 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 If BOUND-START and BOUND-END are non-nil, only fontify the region
in between them." in between them."
(when (or (null bound-start) (null bound-end) (when (or (null bound-start) (null bound-end)
(and bound-start bound-end (and (<= bound-start end)
(<= bound-start end)
(>= bound-end start))) (>= bound-end start)))
(when (and bound-start bound-end) (when (and bound-start bound-end)
(setq start (max bound-start start) (setq start (max bound-start start)

View file

@ -1649,7 +1649,7 @@ buffer. */)
TSRange *treesit_ranges = xmalloc (sizeof (TSRange) * len); TSRange *treesit_ranges = xmalloc (sizeof (TSRange) * len);
struct buffer *buffer = XBUFFER (XTS_PARSER (parser)->buffer); 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. */ the input by treesit_check_range_argument. */
for (int idx = 0; !NILP (ranges); idx++, ranges = XCDR (ranges)) for (int idx = 0; !NILP (ranges); idx++, ranges = XCDR (ranges))
@ -2546,10 +2546,10 @@ static bool
treesit_predicate_equal (Lisp_Object args, struct capture_range captures, treesit_predicate_equal (Lisp_Object args, struct capture_range captures,
Lisp_Object *signal_data) Lisp_Object *signal_data)
{ {
if (XFIXNUM (Flength (args)) != 2) if (list_length (args) != 2)
{ {
*signal_data = list2 (build_string ("Predicate `equal' requires " *signal_data = list2 (build_string ("Predicate `equal' requires "
"two arguments but only given"), "two arguments but got"),
Flength (args)); Flength (args));
return false; return false;
} }
@ -2581,10 +2581,10 @@ static bool
treesit_predicate_match (Lisp_Object args, struct capture_range captures, treesit_predicate_match (Lisp_Object args, struct capture_range captures,
Lisp_Object *signal_data) Lisp_Object *signal_data)
{ {
if (XFIXNUM (Flength (args)) != 2) if (list_length (args) != 2)
{ {
*signal_data = list2 (build_string ("Predicate `match' requires two " *signal_data = list2 (build_string ("Predicate `match' requires two "
"arguments but only given"), "arguments but got"),
Flength (args)); Flength (args));
return false; return false;
} }
@ -2646,11 +2646,11 @@ static bool
treesit_predicate_pred (Lisp_Object args, struct capture_range captures, treesit_predicate_pred (Lisp_Object args, struct capture_range captures,
Lisp_Object *signal_data) Lisp_Object *signal_data)
{ {
if (XFIXNUM (Flength (args)) < 2) if (list_length (args) < 2)
{ {
*signal_data = list2 (build_string ("Predicate `pred' requires " *signal_data = list2 (build_string ("Predicate `pred' requires "
"at least two arguments, " "at least two arguments, "
"but was only given"), "but only got"),
Flength (args)); Flength (args));
return false; return false;
} }
@ -2671,7 +2671,7 @@ treesit_predicate_pred (Lisp_Object args, struct capture_range captures,
return !NILP (CALLN (Fapply, fn, nodes)); 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 return false. If everything goes fine, don't touch SIGNAL_DATA; if
error occurs, set it to a suitable signal data. */ error occurs, set it to a suitable signal data. */
static bool static bool
@ -2696,7 +2696,7 @@ treesit_eval_predicates (struct capture_range captures, Lisp_Object predicates,
{ {
*signal_data = list3 (build_string ("Invalid predicate"), *signal_data = list3 (build_string ("Invalid predicate"),
fn, build_string ("Currently Emacs only supports" fn, build_string ("Currently Emacs only supports"
" equal, match, and pred" " `equal', `match', and `pred'"
" predicates")); " predicates"));
pass = false; pass = false;
} }