There is a similar issue with font-lock-property-name-face and font-lock-property-use-face. I've noticed different modes treat things differently. I think object fields in literals should get property-name-face, but json-ts-mode, for example, doesn't use font-lock-property-name-face at all. On Fri, May 31, 2024 at 6:42 PM Noah Peart wrote: > > 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 wrote: > >> On Thursday, May 30th, 2024 at 09:25, Noah Peart >> 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. >> >