Function: treesit-pattern-expand
treesit-pattern-expand is a function defined in treesit.c.
Signature
(treesit-pattern-expand PATTERN)
Documentation
Expand PATTERN to its string form.
PATTERN can be
:anchor
:?
:*
:+
:equal
:match
(TYPE PATTERN...)
[PATTERN...]
FIELD-NAME:
@CAPTURE-NAME
(_)
_
"TYPE"
See Info node (elisp)Pattern Matching for detailed explanation.
Other relevant functions are documented in the treesit group.
Shortdoc
;; treesit
(treesit-pattern-expand :anchor)
=> "."
(treesit-pattern-expand '(identifier))
=> "(identifier)"
(treesit-pattern-expand :equal)
=> "#equal"
Source Code
// Defined in /usr/src/emacs/src/treesit.c
{
if (BASE_EQ (pattern, QCanchor))
return Vtreesit_str_dot;
if (BASE_EQ (pattern, QCquestion))
return Vtreesit_str_question_mark;
if (BASE_EQ (pattern, QCstar))
return Vtreesit_str_star;
if (BASE_EQ (pattern, QCplus))
return Vtreesit_str_plus;
if (BASE_EQ (pattern, QCequal))
return Vtreesit_str_pound_equal;
if (BASE_EQ (pattern, QCmatch))
return Vtreesit_str_pound_match;
if (BASE_EQ (pattern, QCpred))
return Vtreesit_str_pound_pred;
Lisp_Object opening_delimeter
= VECTORP (pattern)
? Vtreesit_str_open_bracket : Vtreesit_str_open_paren;
Lisp_Object closing_delimiter
= VECTORP (pattern)
? Vtreesit_str_close_bracket : Vtreesit_str_close_paren;
if (VECTORP (pattern) || CONSP (pattern))
return concat3 (opening_delimeter,
Fmapconcat (Qtreesit_pattern_expand,
pattern,
Vtreesit_str_space),
closing_delimiter);
if (STRINGP (pattern))
return treesit_query_string_string (pattern);
return Fprin1_to_string (pattern, Qnil, Qt);
}