GNU bug report logs -
#60397
29.0.60; c++-ts-mode could report better defun names
Previous Next
Reported by: Knut Anders Hatlen <kahatlen <at> gmail.com>
Date: Thu, 29 Dec 2022 07:43:02 UTC
Severity: normal
Found in version 29.0.60
Done: Yuan Fu <casouri <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #11 received at 60397 <at> debbugs.gnu.org (full text, mbox):
Knut Anders Hatlen <kahatlen <at> gmail.com> writes:
> The defun names reported by c++-ts-mode could still need a couple of
> improvements:
>
> 1) In a buffer with c++-ts-mode and which-function-mode enabled, and
> this content:
>
> struct S {
> int f1(int x) {
> return x + 1;
> }
> int g1(int x);
> };
>
> int S::g1(int x) {
> return x + 1;
> }
>
> Inside the inline f1 function definition, which-function-mode shows
> "S.f1". But inside the out-of-line g1 function definition, it shows
> "n/a" instead of "S.g1". (Not limited to structs. Classes have the same
> problem.)
Now the second function is displayed as S::g1.
> 2) Namespaces are not handled. Given this content:
>
> namespace n {
> int f1(int x) {
> return x + 1;
> }
> }
>
> namespace {
> int f2(int x) {
> return x + 1;
> }
> }
>
> Inside the f1 and f2 function bodies, which-function-mode shows "f1" and
> "f2", respectively. It would be better if it showed "n.f1" for the
> former, and perhaps something like "(anonymous).f2" for the latter.
Now the first function is shown as n.f1, the second is shown as f2.
Making it (anonymous).f2 isn’t necessarily better than f2 IMO, and
requires some non-trivial change to the current code, so I didn’t do it.
Yuan
This bug report was last modified 2 years and 122 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.