GNU bug report logs - #61403
30.0.50; C tree-sitter bug?

Previous Next

Package: emacs;

Reported by: Po Lu <luangruo <at> yahoo.com>

Date: Fri, 10 Feb 2023 15:17:01 UTC

Severity: minor

Found in version 30.0.50

Full log


View this message in rfc822 format

From: Po Lu <luangruo <at> yahoo.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 61403 <at> debbugs.gnu.org, casouri <at> gmail.com
Subject: bug#61403: 30.0.50; C tree-sitter bug?
Date: Sun, 12 Feb 2023 18:30:41 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Cc: 61403 <at> debbugs.gnu.org
>> Date: Sun, 12 Feb 2023 16:36:10 +0800
>> From:  Po Lu via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>> 
>> Yuan Fu <casouri <at> gmail.com> writes:
>> 
>> > Po Lu <luangruo <at> yahoo.com> writes:
>> >
>> >> Go to sfnt.c in the feature/android branch, and turn on c-ts-mode.
>> >>
>> >> Then, go to line 10754, around which should be the function definition:
>> >>
>> >> /* Load the simple glyph GLYPH into the specified INTERPRETER, scaling
>> >>    it up by INTERPRETER's scale, and run its glyph program if
>> >>    present.  Use the unscaled metrics specified in METRICS.
>> >>
>> >>    Upon success, return NULL and the resulting points and contours in
>> >>    *VALUE.  Else, value is the reason interpretation failed.  */
>> >>
>> >> TEST_STATIC const char *
>> >> sfnt_interpret_simple_glyph (struct sfnt_glyph *glyph,
>> >> 			     struct sfnt_interpreter *interpreter,
>> >> 			     struct sfnt_glyph_metrics *metrics,
>> >> 			     struct sfnt_instructed_outline **value)
>> >> {
>> >>   size_t zone_size, temp, outline_size, i;
>> >>   struct sfnt_interpreter_zone *zone;
>> >>   struct sfnt_interpreter_zone *volatile preserved_zone;
>> >>   sfnt_f26dot6 phantom_point_1_x;
>> >>
>> >> `TEST_STATIC' is fontified as a type.  Perhaps tree-sitter needs
>> >> something along the lines of `c-noise-macros'?
>> >
>> > Would it be reasonable to assume that all caps "type" are almost always
>> > macros? If it is, we can optionally defontify these kind of "types".
>> 
>> Not really, because an extremely common type is:
>> 
>>     PTR_T *ptr;
>> 
>> where ``PTR_T'' is used to represent pointers on systems that may lack
>> properly working pointers to void.
>> 
>> The standard library FILE * is also one such type with a capitalized
>> name.
>
> I admit I don't understand the problem that is the subject of this
> bug.  Why is it wrong to fontify TEST_STATIC as a type?  CC mode also
> fontifies it as a type, btw.

Yes, but CC Mode provides `c-noise-macro-names'.  I said something
similar should exist in c-ts-mode at the beginning of this thread.

> The only problem I see in what c-ts-mode does is that it does NOT
> fontify 'char', whereas CC mode does.  So if anything needs to be done
> here, we need to look into why 'char' is not fontified by c-ts-mode.

Apparently tree-sitter thinks only TEST_STATIC is the type, and
everything else is a syntactic error.




This bug report was last modified 1 year and 350 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.