GNU bug report logs -
#61235
30.0.50; tree-sit: `treesit-node-check' lacks a way to tell if a node belongs to a deleted parser
Previous Next
Reported by: Mickey Petersen <mickey <at> masteringemacs.org>
Date: Thu, 2 Feb 2023 19:47:02 UTC
Severity: normal
Found in version 30.0.50
Fixed in version 29.1
Done: Yuan Fu <casouri <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> From: Yuan Fu <casouri <at> gmail.com>
> Date: Sun, 5 Feb 2023 20:24:27 -0800
> Cc: 61235 <at> debbugs.gnu.org,
> Eli Zaretskii <eliz <at> gnu.org>
>
> Mickey Petersen <mickey <at> masteringemacs.org> writes:
>
> > There's no way to tell if a node belongs to a now-deleted
> > parser. Checking if it is `missing' or `outdated' returns nil; there
> > is no way to ascertain this state except by catching an error if you
> > try to get its node text, type, etc.
>
> That sounds reasonable. I can add treesit-parser-live-p, and add
> a "live" PROPERTY to treesit-node-check.
I'm not sure I understand the need. AFAIU, a parser is deleted only
if we call treesit-parser-delete; are we saying that a Lisp program
doesn't know that it deleted a parser? What exactly is the practical
situation where this problem happens, and why?
Frankly, I don't think we should at this stage add APIs without a very
good reason. We should instead collect experience, both from users
and from Lisp programs, and analyze them before deciding whether more
APIs are necessary.
> +DEFUN ("treesit-parser-live-p",
> + Ftreesit_parser_live_p, Streesit_parser_live_p, 1, 1, 0,
> + doc: /* Check whether PARSER is not deleted and its buffer is live. */)
> + (Lisp_Object parser)
> +{
> + treesit_check_parser (parser);
> + if (XTS_PARSER (parser)->deleted)
> + return Qnil;
> + else if (NILP (Fbuffer_live_p (XTS_PARSER (parser)->buffer)))
> + return Qnil;
> + else
> + return Qt;
> +}
Doesn't treesit_check_parser signal an error if the parser was
deleted? If so, how will the above be useful, if someone wants to
avoid errors?
This bug report was last modified 2 years and 147 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.