diff options
| author | Yuan Fu | 2025-03-10 20:15:39 -0700 |
|---|---|---|
| committer | Yuan Fu | 2025-03-11 01:06:39 -0700 |
| commit | 03a6d4256f861d71e09206ac09d48f16efd52b64 (patch) | |
| tree | 12f2fb21cf44ce08f9b24202b8acbe1a28050a4b /src | |
| parent | f79354460d3bef4a3f859f78c6cc77738437d670 (diff) | |
| download | emacs-03a6d4256f861d71e09206ac09d48f16efd52b64.tar.gz emacs-03a6d4256f861d71e09206ac09d48f16efd52b64.zip | |
Remove parent-node field from tree-sitter parsers
* src/treesit.c (make_treesit_parser): Remove field.
(Ftreesit_parser_parent_node):
(Ftreesit_parser_set_parent_node): Remove
* src/treesit.h (Lisp_TS_Parser): Remove field.
Diffstat (limited to 'src')
| -rw-r--r-- | src/treesit.c | 32 | ||||
| -rw-r--r-- | src/treesit.h | 14 |
2 files changed, 0 insertions, 46 deletions
diff --git a/src/treesit.c b/src/treesit.c index 9622addd09b..b0979397d35 100644 --- a/src/treesit.c +++ b/src/treesit.c | |||
| @@ -1368,7 +1368,6 @@ make_treesit_parser (Lisp_Object buffer, TSParser *parser, | |||
| 1368 | lisp_parser->tag = tag; | 1368 | lisp_parser->tag = tag; |
| 1369 | lisp_parser->last_set_ranges = Qnil; | 1369 | lisp_parser->last_set_ranges = Qnil; |
| 1370 | lisp_parser->embed_level = Qnil; | 1370 | lisp_parser->embed_level = Qnil; |
| 1371 | lisp_parser->parent_node = Qnil; | ||
| 1372 | lisp_parser->buffer = buffer; | 1371 | lisp_parser->buffer = buffer; |
| 1373 | lisp_parser->parser = parser; | 1372 | lisp_parser->parser = parser; |
| 1374 | lisp_parser->tree = tree; | 1373 | lisp_parser->tree = tree; |
| @@ -1856,35 +1855,6 @@ tree; otherwise it must be a non-negative integer. */) | |||
| 1856 | return level; | 1855 | return level; |
| 1857 | } | 1856 | } |
| 1858 | 1857 | ||
| 1859 | DEFUN ("treesit-parser-parent-node", | ||
| 1860 | Ftreesit_parser_parent_node, Streesit_parser_parent_node, | ||
| 1861 | 1, 1, 0, | ||
| 1862 | doc: /* Return PARSER's parent node, if one exists. | ||
| 1863 | |||
| 1864 | Only embeded local parsers can have parent node. When Emacs uses a node | ||
| 1865 | in the host parser to create this local parser, that node is considered | ||
| 1866 | the parent node of the local parser. */) | ||
| 1867 | (Lisp_Object parser) | ||
| 1868 | { | ||
| 1869 | treesit_check_parser (parser); | ||
| 1870 | return XTS_PARSER (parser)->parent_node; | ||
| 1871 | } | ||
| 1872 | |||
| 1873 | DEFUN ("treesit-parser-set-parent-node", | ||
| 1874 | Ftreesit_parser_set_parent_node, Streesit_parser_set_parent_node, | ||
| 1875 | 2, 2, 0, | ||
| 1876 | doc: /* Make NODE be the parent node of PARSER. */) | ||
| 1877 | (Lisp_Object parser, Lisp_Object node) | ||
| 1878 | { | ||
| 1879 | treesit_check_parser (parser); | ||
| 1880 | if (!NILP (node)) | ||
| 1881 | CHECK_TS_NODE (node); | ||
| 1882 | |||
| 1883 | XTS_PARSER (parser)->parent_node = node; | ||
| 1884 | return node; | ||
| 1885 | } | ||
| 1886 | |||
| 1887 | |||
| 1888 | /* Return true if PARSER is not deleted and its buffer is live. */ | 1858 | /* Return true if PARSER is not deleted and its buffer is live. */ |
| 1889 | static bool | 1859 | static bool |
| 1890 | treesit_parser_live_p (Lisp_Object parser) | 1860 | treesit_parser_live_p (Lisp_Object parser) |
| @@ -4642,8 +4612,6 @@ applies to LANGUAGE-A will be redirected to LANGUAGE-B instead. */); | |||
| 4642 | defsubr (&Streesit_parser_tag); | 4612 | defsubr (&Streesit_parser_tag); |
| 4643 | defsubr (&Streesit_parser_embed_level); | 4613 | defsubr (&Streesit_parser_embed_level); |
| 4644 | defsubr (&Streesit_parser_set_embed_level); | 4614 | defsubr (&Streesit_parser_set_embed_level); |
| 4645 | defsubr (&Streesit_parser_parent_node); | ||
| 4646 | defsubr (&Streesit_parser_set_parent_node); | ||
| 4647 | 4615 | ||
| 4648 | defsubr (&Streesit_parser_root_node); | 4616 | defsubr (&Streesit_parser_root_node); |
| 4649 | defsubr (&Streesit_parse_string); | 4617 | defsubr (&Streesit_parse_string); |
diff --git a/src/treesit.h b/src/treesit.h index d4cfc47ee5d..0d4635f4253 100644 --- a/src/treesit.h +++ b/src/treesit.h | |||
| @@ -72,20 +72,6 @@ struct Lisp_TS_Parser | |||
| 72 | friends) haven't touched this parser yet, and this parser isn't | 72 | friends) haven't touched this parser yet, and this parser isn't |
| 73 | part of the embed parser tree. */ | 73 | part of the embed parser tree. */ |
| 74 | Lisp_Object embed_level; | 74 | Lisp_Object embed_level; |
| 75 | /* Some comments: Technically you could calculate embed_level by | ||
| 76 | following parent_node, but parent_node might be outdated so it's a | ||
| 77 | good idea to record embed_level separately. Embed_level and | ||
| 78 | parent_node could have been implemented as "parser properties" with | ||
| 79 | an obarray, but ultimately I think two explicit fields helps | ||
| 80 | documentation better and it's not clear to me that a property list | ||
| 81 | for a parser will be useful beyond this. And we can always convert | ||
| 82 | these to properties later, but not vice versa. */ | ||
| 83 | /* When an embedded parser is created, it's usually based on a node in | ||
| 84 | the host parser. This field saves that node so it's possible to | ||
| 85 | climb up and out of the embedded parser into the host parser. Note | ||
| 86 | that the range of the embedded parser doesn't have to match that of | ||
| 87 | the parent node. */ | ||
| 88 | Lisp_Object parent_node; | ||
| 89 | /* The buffer associated with this parser. */ | 75 | /* The buffer associated with this parser. */ |
| 90 | Lisp_Object buffer; | 76 | Lisp_Object buffer; |
| 91 | /* The pointer to the tree-sitter parser. Never NULL. */ | 77 | /* The pointer to the tree-sitter parser. Never NULL. */ |