Subject: bug#61275: closed (Re: bug#61275: c-ts-mode: (eq treesit-font-lock-level 2) doesn't fontify parameter names.)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 04 Feb 2023 20:55:02 +0000

Your bug report

#61275: c-ts-mode: (eq treesit-font-lock-level 2) doesn't fontify parameter names.

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
61275: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61275
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#61275: c-ts-mode: (eq treesit-font-lock-level 2) doesn't fontify parameter names.
From: Dmitry Gutov <[email-masked]>
To: Eli Zaretskii <[email-masked]>, [email-masked], Theodor Thornhill <[email-masked]>, Yuan Fu <[email-masked]>
Cc: [email-masked]
Date: Sat, 4 Feb 2023 22:54:04 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 29.1

On 04/02/2023 19:20, Eli Zaretskii wrote:
>> Cc:[email-masked]
>> Date: Sat, 04 Feb 2023 19:13:43 +0200
>> From: Eli Zaretskii<[email-masked]>
>>
>>> Date: Sat, 4 Feb 2023 17:00:45 +0000
>>> Cc:[email-masked]
>>> From: Alan Mackenzie<[email-masked]>
>>>
>>>> By "the definition of bar", do you mean this:
>>>>      int foo (int bar)
>>>>                   ^^^
>>> Yes, that's precisely what I meant.
>> I believe this is known as "parameter declaration".
> More accurately, you want the parameter identifiers which are part of
> parameter declarations to be fontified using the
> font-lock-variable-name-face.
> 
> I hope Yuan or Theo could look into this soon.

I've installed the patch previously posted to emacs-devel. It should 
take care of c-ts-mode and c++-ts-mode.

Subject: c-ts-mode: (eq treesit-font-lock-level 2) doesn't fontify parameter names.
From: Alan Mackenzie <[email-masked]>
To: [email-masked]
Date: Sat, 4 Feb 2023 16:27:13 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello, Emacs.

In master (or probably the release branch), setting
treesit-font-lock-level to 2 for c-ts-mode fontifies variable
definitions, but not the parameter definitions of a C function.

For example, in

    int foo (int bar)
    {
        int baz;

        baz = bar;
	return baz;
    }

, the definition of bar is not fontified, but that of baz is.

There doesn't appear to be a (documented) way to get something similar to
C Mode's fontification, where the declarations of variables and
parameters were fontified, but not their use.

This is a fontification detail I would very much like to have.  In long
straggling C functions, variables are frequently declared in the middle
of the functions, and having the declarations stand out makes it easy to
search for them with the eye.  It is less easy if parameters aren't also
fontified.

-- 
Alan Mackenzie (Nuremberg, Germany).