Improve docstring of treesit-parent-while (bug#62301)

* doc/lispref/parsing.texi (Retrieving Nodes): Improve and fix
docstring for treesit-parent-until and treesit-parent-while.
* lisp/treesit.el (treesit-parent-while): Improve docstring.
This commit is contained in:
Yuan Fu 2023-03-21 14:50:07 -07:00
parent 35648a8673
commit 8b6a0de964
No known key found for this signature in database
GPG key ID: 56E19BC57664A442
2 changed files with 20 additions and 14 deletions

View file

@ -859,18 +859,24 @@ return non-@code{nil} to indicate that the node should be kept. If
nodes. nodes.
@end defun @end defun
@defun treesit-parent-until node predicate @defun treesit-parent-until node predicate &optional include-node
This function repeatedly finds the parents of @var{node}, and returns This function repeatedly finds the parents of @var{node}, and returns
the parent that satisfies @var{predicate}, a function that takes a the parent that satisfies @var{pred}, a function that takes a node as
node as the argument. If no parent satisfies @var{predicate}, this the argument and returns a boolean that indicates a match. If no
function returns @code{nil}. parent satisfies @var{pred}, this function returns @code{nil}.
Normally this function only looks at the parents of @var{node} but not
@var{node} itself. But if @var{include-node} is non-@var{nil}, this
function returns @var{node} if @var{node} satisfies @var{pred}.
@end defun @end defun
@defun treesit-parent-while node predicate @defun treesit-parent-while node pred
This function repeatedly finds the parent of @var{node}, and keeps This function goes up the tree starting from @var{node}, and keeps
doing so as long as the nodes satisfy @var{predicate}, a function that doing so as long as the nodes satisfy @var{pred}, a function that
takes a node as the argument. That is, this function returns the takes a node as the argument. That is, this function returns the
farthest parent that still satisfies @var{predicate}. highest parent of @var{node} that still satisfies @var{pred}. Note
that if @var{node} satisfies @var{pred} but its immediate parent
doesn't, @var{node} itself is returned.
@end defun @end defun
@defun treesit-node-top-level node &optional type @defun treesit-node-top-level node &optional type

View file

@ -324,13 +324,13 @@ If INCLUDE-NODE is non-nil, return NODE if it satisfies PRED."
node)) node))
(defun treesit-parent-while (node pred) (defun treesit-parent-while (node pred)
"Return the furthest parent of NODE that satisfies PRED. "Return the furthest parent of NODE (including NODE) that satisfies PRED.
This function successively examines the parent of NODE, then This function successively examines NODE, the parent of NODE,
the parent of the parent, etc., until it finds an ancestor node then the parent of the parent, etc., until it finds a node which
which no longer satisfies the predicate PRED; it returns the last no longer satisfies the predicate PRED; it returns the last
examined ancestor that satisfies PRED. It returns nil if no examined node that satisfies PRED. If no node satisfies PRED, it
ancestor node was found that satisfies PRED. returns nil.
PRED should be a function that takes one argument, the node to PRED should be a function that takes one argument, the node to
examine, and returns a boolean value indicating whether that examine, and returns a boolean value indicating whether that