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)
"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)

View file

@ -1649,7 +1649,7 @@ buffer. */)
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))
@ -2546,10 +2546,10 @@ static bool
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;
}
@ -2581,10 +2581,10 @@ static bool
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;
}
@ -2646,11 +2646,11 @@ static bool
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;
}
@ -2671,7 +2671,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
@ -2696,7 +2696,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;
}