diff options
author | Yuan Fu <casouri@gmail.com> | 2023-03-24 13:13:05 -0700 |
---|---|---|
committer | Yuan Fu <casouri@gmail.com> | 2023-03-30 21:55:22 -0700 |
commit | 73a320801e9af61a48fd0e803afcd02b059b2338 (patch) | |
tree | d98973d3d0cf14ae596f11e3599404b7c3327742 /doc | |
parent | 560c27a332cf3739fc0b2bab7ad3118cd6998f12 (diff) | |
download | emacs-73a320801e9af61a48fd0e803afcd02b059b2338.tar.gz |
Add treesit-node-get
* doc/lispref/parsing.texi (Retrieving Nodes): Add manual entry.
* lisp/treesit.el (treesit-node--get): New function.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/lispref/parsing.texi | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/doc/lispref/parsing.texi b/doc/lispref/parsing.texi index 86a5d9f2e52..38c9ec8c2f0 100644 --- a/doc/lispref/parsing.texi +++ b/doc/lispref/parsing.texi @@ -849,6 +849,53 @@ Each node in the returned tree looks like @heading More convenience functions +@defun treesit-node-get node instructions +This is a convenience function that chains together multiple node +accessor functions together. For example, to get @var{node}'s +parent's next sibling's second child's text: + +@example +@group +(treesit-node-get node + '((parent 1) + (sibling 1 nil) + (child 1 nil) + (text nil))) +@end group +@end example + +@var{instruction} is a list of INSTRUCTIONs of the form +@w{@code{(@var{fn} @var{arg}...)}}. The following @var{fn}'s are +supported: + +@table @code +@item (child @var{idx} @var{named}) +Get the @var{idx}'th child. + +@item (parent @var{n}) +Go to parent @var{n} times. + +@item (field-name) +Get the field name of the current node. + +@item (type) +Get the type of the current node. + +@item (text @var{no-property}) +Get the text of the current node. + +@item (children @var{named}) +Get a list of children. + +@item (sibling @var{step} @var{named}) +Get the nth prev/next sibling, negative @var{step} means prev sibling, +positive means next sibling. +@end table + +Note that arguments like @var{named} and @var{no-property} can't be +omitted, unlike in their original functions. +@end defun + @defun treesit-filter-child node predicate &optional named This function finds immediate children of @var{node} that satisfy @var{predicate}. |