GNU bug report logs -
#60296
The imenu is not created properly in c-ts-mode
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 60296 in the body.
You can then email your comments to 60296 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#60296
; Package
emacs
.
(Sat, 24 Dec 2022 09:33:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
"e190 <at> 163.com" <e190 <at> 163.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Sat, 24 Dec 2022 09:33:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
From: sniper <e190 <at> 163.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.60; The imenu is not created properly in c-ts-mode.
``` c
char *test(int size){
return NULL;
}
```
If c-ts-mode is enabled in a c file, the imenu created will be [` test(int size)`] if the return type of the function is a pointer.
The expected display should just be the function name [` test `], with no subsequent arguments
In GNU Emacs 29.0.60 (build 1, x86_64-pc-linux-gnu, GTK+ Version
2.24.30, cairo version 1.14.6) of 2022-12-24 built on sniper-VirtualBox
Repository revision: a42b20dd95e4ca522c090f9edf110dcd132b616f
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Ubuntu 16.04.7 LTS
Configured using:
'configure --with-tree-sitter'
Configured features:
ACL CAIRO FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG MODULES
NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER X11 XDBE XIM XINPUT2 XPM GTK2 ZLIB
Important settings:
value of $LANG: zh_CN.UTF-8
value of $XMODIFIERS: @im=fcitx
locale-coding-system: utf-8-unix
Major mode: C
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search time-date subr-x mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
thingatpt imenu c-ts-mode treesit cl-seq vc-git diff-mode easy-mmode
vc-dispatcher cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs cl-loaddefs cl-lib china-util rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads inotify dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process emacs)
Memory information:
((conses 16 66520 5953)
(symbols 48 7704 0)
(strings 32 22372 1529)
(string-bytes 1 799153)
(vectors 16 14434)
(vector-slots 8 248111 11836)
(floats 8 29 47)
(intervals 56 511 0)
(buffers 984 13)
(heap 1024 13768 1149))
e190 <at> 163.com
[Message part 2 (text/html, inline)]
Reply sent
to
Yuan Fu <casouri <at> gmail.com>
:
You have taken responsibility.
(Sun, 25 Dec 2022 03:01:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
"e190 <at> 163.com" <e190 <at> 163.com>
:
bug acknowledged by developer.
(Sun, 25 Dec 2022 03:01:02 GMT)
Full text and
rfc822 format available.
Message #10 received at 60296-done <at> debbugs.gnu.org (full text, mbox):
"e190 <at> 163.com" <e190 <at> 163.com> writes:
> From: sniper <e190 <at> 163.com>
> To: bug-gnu-emacs <at> gnu.org
> Subject: 29.0.60; The imenu is not created properly in c-ts-mode.
>
> ``` c
> char *test(int size){
> return NULL;
> }
> ```
> If c-ts-mode is enabled in a c file, the imenu created will be [` test(int size)`] if the return type of the function is a
> pointer.
> The expected display should just be the function name [` test `], with no subsequent arguments
Thanks, this should be fixed now.
Yuan
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#60296
; Package
emacs
.
(Sun, 25 Dec 2022 06:54:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 60296 <at> debbugs.gnu.org (full text, mbox):
> Cc: 60296-done <at> debbugs.gnu.org
> From: Yuan Fu <casouri <at> gmail.com>
> Date: Sat, 24 Dec 2022 19:00:21 -0800
>
> > From: sniper <e190 <at> 163.com>
> > To: bug-gnu-emacs <at> gnu.org
> > Subject: 29.0.60; The imenu is not created properly in c-ts-mode.
> >
> > ``` c
> > char *test(int size){
> > return NULL;
> > }
> > ```
> > If c-ts-mode is enabled in a c file, the imenu created will be [` test(int size)`] if the return type of the function is a
> > pointer.
> > The expected display should just be the function name [` test `], with no subsequent arguments
>
> Thanks, this should be fixed now.
This change leads to
In c-ts-mode--fontify-declarator:
progmodes/c-ts-mode.el:405:69: Warning: Unused lexical argument `args'
And "&rest args" is indeed unused there, AFAICT.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#60296
; Package
emacs
.
(Sun, 25 Dec 2022 08:32:01 GMT)
Full text and
rfc822 format available.
Message #16 received at 60296 <at> debbugs.gnu.org (full text, mbox):
> On Dec 24, 2022, at 10:53 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:
>
>> Cc: 60296-done <at> debbugs.gnu.org
>> From: Yuan Fu <casouri <at> gmail.com>
>> Date: Sat, 24 Dec 2022 19:00:21 -0800
>>
>>> From: sniper <e190 <at> 163.com>
>>> To: bug-gnu-emacs <at> gnu.org
>>> Subject: 29.0.60; The imenu is not created properly in c-ts-mode.
>>>
>>> ``` c
>>> char *test(int size){
>>> return NULL;
>>> }
>>> ```
>>> If c-ts-mode is enabled in a c file, the imenu created will be [` test(int size)`] if the return type of the function is a
>>> pointer.
>>> The expected display should just be the function name [` test `], with no subsequent arguments
>>
>> Thanks, this should be fixed now.
>
> This change leads to
>
> In c-ts-mode--fontify-declarator:
> progmodes/c-ts-mode.el:405:69: Warning: Unused lexical argument `args'
>
> And "&rest args" is indeed unused there, AFAICT.
My bad. I’ve fixed that by changing args to _.
Yuan
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#60296
; Package
emacs
.
(Mon, 26 Dec 2022 08:00:02 GMT)
Full text and
rfc822 format available.
Message #19 received at 60296 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
>> On Dec 24, 2022, at 10:53 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:
>>
>>> Cc: 60296-done <at> debbugs.gnu.org
>>> From: Yuan Fu <casouri <at> gmail.com>
>>> Date: Sat, 24 Dec 2022 19:00:21 -0800
>>>
>>>> From: sniper <e190 <at> 163.com>
>>>> To: bug-gnu-emacs <at> gnu.org
>>>> Subject: 29.0.60; The imenu is not created properly in c-ts-mode.
>>>>
>>>> ``` c
>>>> char *test(int size){
>>>> return NULL;
>>>> }
>>>> ```
>>>> If c-ts-mode is enabled in a c file, the imenu created will be [` test(int size)`] if the return type of the function is a
>>>> pointer.
>>>> The expected display should just be the function name [` test `], with no subsequent arguments
>>>
>>> Thanks, this should be fixed now.
>>
>> This change leads to
>>
>> In c-ts-mode--fontify-declarator:
>> progmodes/c-ts-mode.el:405:69: Warning: Unused lexical argument `args'
>>
>> And "&rest args" is indeed unused there, AFAICT.
>My bad. I’ve fixed that by changing args to _.
Hi, Yuan:
I tested it in the latest version and found several more issues.
``` c
int main(int argc, char *argv[])
{
.....
struct name_t name = (struct name_t)name;
name.a = sizeof(struct name_t);
.....
}
```
If Forced conversion or ` sizeof(struct name_t) ` occurs in a function, it will occur in the Struct entry of imenu.
``` c
int func_1(int v); // <-- function declaration
int main(int argc, char *argv[])
{
}
```
If there is a function declaration in the c file, it will also appear in imenu's Variable entry.
e190 <at> 163.com
From: Yuan Fu
Date: 2022-12-25 16:31
To: Eli Zaretskii
CC: 60296; e190
Subject: Re: bug#60296: The imenu is not created properly in c-ts-mode
> On Dec 24, 2022, at 10:53 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:
>
>> Cc: 60296-done <at> debbugs.gnu.org
>> From: Yuan Fu <casouri <at> gmail.com>
>> Date: Sat, 24 Dec 2022 19:00:21 -0800
>>
>>> From: sniper <e190 <at> 163.com>
>>> To: bug-gnu-emacs <at> gnu.org
>>> Subject: 29.0.60; The imenu is not created properly in c-ts-mode.
>>>
>>> ``` c
>>> char *test(int size){
>>> return NULL;
>>> }
>>> ```
>>> If c-ts-mode is enabled in a c file, the imenu created will be [` test(int size)`] if the return type of the function is a
>>> pointer.
>>> The expected display should just be the function name [` test `], with no subsequent arguments
>>
>> Thanks, this should be fixed now.
>
> This change leads to
>
> In c-ts-mode--fontify-declarator:
> progmodes/c-ts-mode.el:405:69: Warning: Unused lexical argument `args'
>
> And "&rest args" is indeed unused there, AFAICT.
My bad. I’ve fixed that by changing args to _.
Yuan
[Message part 2 (text/html, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#60296
; Package
emacs
.
(Mon, 26 Dec 2022 09:48:01 GMT)
Full text and
rfc822 format available.
Message #22 received at 60296 <at> debbugs.gnu.org (full text, mbox):
> On Dec 25, 2022, at 11:58 PM, e190 <at> 163.com wrote:
>
> >> On Dec 24, 2022, at 10:53 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:
> >>
> >>> Cc: 60296-done <at> debbugs.gnu.org
> >>> From: Yuan Fu <casouri <at> gmail.com>
> >>> Date: Sat, 24 Dec 2022 19:00:21 -0800
> >>>
> >>>> From: sniper <e190 <at> 163.com>
> >>>> To: bug-gnu-emacs <at> gnu.org
> >>>> Subject: 29.0.60; The imenu is not created properly in c-ts-mode.
> >>>>
> >>>> ``` c
> >>>> char *test(int size){
> >>>> return NULL;
> >>>> }
> >>>> ```
> >>>> If c-ts-mode is enabled in a c file, the imenu created will be [` test(int size)`] if the return type of the function is a
> >>>> pointer.
> >>>> The expected display should just be the function name [` test `], with no subsequent arguments
> >>>
> >>> Thanks, this should be fixed now.
> >>
> >> This change leads to
> >>
> >> In c-ts-mode--fontify-declarator:
> >> progmodes/c-ts-mode.el:405:69: Warning: Unused lexical argument `args'
> >>
> >> And "&rest args" is indeed unused there, AFAICT.
>
> >My bad. I’ve fixed that by changing args to _.
> Hi, Yuan:
>
> I tested it in the latest version and found several more issues.
> ``` c
> int main(int argc, char *argv[])
> {
> .....
> struct name_t name = (struct name_t)name;
> name.a = sizeof(struct name_t);
> .....
> }
> ```
> If Forced conversion or ` sizeof(struct name_t) ` occurs in a function, it will occur in the Struct entry of imenu.
>
>
> ``` c
> int func_1(int v); // <-- function declaration
> int main(int argc, char *argv[])
> {
> }
> ```
> If there is a function declaration in the c file, it will also appear in imenu's Variable entry.
Thanks, I fixed those. Further more, I improved the whole imenu thing in c-ts-mode and it should be robust now.
Yuan
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#60296
; Package
emacs
.
(Tue, 27 Dec 2022 10:04:02 GMT)
Full text and
rfc822 format available.
Message #25 received at 60296 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
>> On Dec 25, 2022, at 11:58 PM, e190 <at> 163.com wrote:
>>
>> >> On Dec 24, 2022, at 10:53 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:
>> >>
>> >>> Cc: 60296-done <at> debbugs.gnu.org
>> >>> From: Yuan Fu <casouri <at> gmail.com>
>> >>> Date: Sat, 24 Dec 2022 19:00:21 -0800
>> >>>
>> >>>> From: sniper <e190 <at> 163.com>
>> >>>> To: bug-gnu-emacs <at> gnu.org
>> >>>> Subject: 29.0.60; The imenu is not created properly in c-ts-mode.
>> >>>>
>> >>>> ``` c
>> >>>> char *test(int size){
>> >>>> return NULL;
>> >>>> }
>> >>>> ```
>> >>>> If c-ts-mode is enabled in a c file, the imenu created will be [` test(int size)`] if the return type of the function is a
>> >>>> pointer.
>> >>>> The expected display should just be the function name [` test `], with no subsequent arguments
>> >>>
>> >>> Thanks, this should be fixed now.
>> >>
>> >> This change leads to
>> >>
>> >> In c-ts-mode--fontify-declarator:
>> >> progmodes/c-ts-mode.el:405:69: Warning: Unused lexical argument `args'
>> >>
>> >> And "&rest args" is indeed unused there, AFAICT.
>>
>> >My bad. I’ve fixed that by changing args to _.
>> Hi, Yuan:
>>
>> I tested it in the latest version and found several more issues.
>> ``` c
>> int main(int argc, char *argv[])
>> {
>> .....
>> struct name_t name = (struct name_t)name;
>> name.a = sizeof(struct name_t);
>> .....
>> }
>> ```
>> If Forced conversion or ` sizeof(struct name_t) ` occurs in a function, it will occur in the Struct entry of imenu.
>>
>>
>> ``` c
>> int func_1(int v); // <-- function declaration
>> int main(int argc, char *argv[])
>> {
>> }
>> ```
>> If there is a function declaration in the c file, it will also appear in imenu's Variable entry.
>
>Thanks, I fixed those. Further more, I improved the whole imenu thing in c-ts-mode and it should be robust now.
Hi, Yuan:
I found another problem, this problem can not be easy to solve.
```
int func_1(int v) { if(v == 0){ } #ifdef MMM else if(v == 1){ } #endif return v; }
```
A function like this has macros in it.
The imenu created looks like this
```
+ Function main + func_1 func_1 if
```
Thanks.
e190 <at> 163.com
From: Yuan Fu
Date: 2022-12-26 17:47
To: e190
CC: Eli Zaretskii; 60296
Subject: Re: bug#60296: The imenu is not created properly in c-ts-mode
> On Dec 25, 2022, at 11:58 PM, e190 <at> 163.com wrote:
>
> >> On Dec 24, 2022, at 10:53 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:
> >>
> >>> Cc: 60296-done <at> debbugs.gnu.org
> >>> From: Yuan Fu <casouri <at> gmail.com>
> >>> Date: Sat, 24 Dec 2022 19:00:21 -0800
> >>>
> >>>> From: sniper <e190 <at> 163.com>
> >>>> To: bug-gnu-emacs <at> gnu.org
> >>>> Subject: 29.0.60; The imenu is not created properly in c-ts-mode.
> >>>>
> >>>> ``` c
> >>>> char *test(int size){
> >>>> return NULL;
> >>>> }
> >>>> ```
> >>>> If c-ts-mode is enabled in a c file, the imenu created will be [` test(int size)`] if the return type of the function is a
> >>>> pointer.
> >>>> The expected display should just be the function name [` test `], with no subsequent arguments
> >>>
> >>> Thanks, this should be fixed now.
> >>
> >> This change leads to
> >>
> >> In c-ts-mode--fontify-declarator:
> >> progmodes/c-ts-mode.el:405:69: Warning: Unused lexical argument `args'
> >>
> >> And "&rest args" is indeed unused there, AFAICT.
>
> >My bad. I’ve fixed that by changing args to _.
> Hi, Yuan:
>
> I tested it in the latest version and found several more issues.
> ``` c
> int main(int argc, char *argv[])
> {
> .....
> struct name_t name = (struct name_t)name;
> name.a = sizeof(struct name_t);
> .....
> }
> ```
> If Forced conversion or ` sizeof(struct name_t) ` occurs in a function, it will occur in the Struct entry of imenu.
>
>
> ``` c
> int func_1(int v); // <-- function declaration
> int main(int argc, char *argv[])
> {
> }
> ```
> If there is a function declaration in the c file, it will also appear in imenu's Variable entry.
Thanks, I fixed those. Further more, I improved the whole imenu thing in c-ts-mode and it should be robust now.
Yuan
[Message part 2 (text/html, inline)]
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Tue, 24 Jan 2023 12:24:07 GMT)
Full text and
rfc822 format available.
This bug report was last modified 2 years and 147 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.