Subject: bug#71209: [PATCH] Add font-locking for variables in go-ts-mode range clauses

From: Noah Peart <[email-masked]>
Date: Fri, 31 May 2024 18:42:07 -0700

> c++-ts-mode will need to get updated too

I've been using these for c++, I think they are still missing

    ;; for (auto x: ...)
    (for_range_loop
     declarator: (identifier) @font-lock-variable-name-face)
    ;; auto& x
    (reference_declarator
     (identifier) @font-lock-variable-name-face)
    ;; auto[&] [x, y]
    (structured_binding_declarator
     _ [(identifier)] @font-lock-variable-name-face)

I suppose most people keep the default font-locking for variable-name
and variable-use, so these missing rules go unnoticed.

On Fri, May 31, 2024 at 6:09 PM Randy Taylor <[email-masked]> wrote:

> On Thursday, May 30th, 2024 at 09:25, Noah Peart <[email-masked]>
> wrote:
> > > it seems we already highlight this when at treesit-font-lock-level 4?
> > They get highlighted with `font-lock-variable-use-face` at level 4, but
> shouldn't
> > they be getting `font-lock-variable-name-face` in the 'definition
> feature?
> >
>
> Indeed, thanks. Could someone please install the patch? Thanks in advance.
>
> Seems like c++-ts-mode will need to get updated too, as with:
> for (const auto& i : things) {}
> i gets font-lock-variable-use-face. I wonder if any other ts modes
> have similar issues.
>