GNU bug report logs -
#61482
30.0.50; tree-sitter-c doesn't support _Generic
Previous Next
To reply to this bug, email your comments to 61482 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61482
; Package
emacs
.
(Mon, 13 Feb 2023 15:34:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Po Lu <luangruo <at> yahoo.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Mon, 13 Feb 2023 15:34:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
2011 Standard C has a feature that works like `switch', except it
switches upon the type of an expression at compile time.
This does not seem to be supported at all with c-ts-mode:
{
const char *typename = _Generic ((expr),
const char *:
"const char *",
int:
"int",
unsigned long:
"unsigned long",
default:
NULL);
}
here, none of the types are fontified (which fares worse than CC Mode),
nor is _Generic fontified as a keyword. Indenting anywhere inside the
_Generic expression also results in nothing happening.
In GNU Emacs 30.0.50 (build 72, x86_64-pc-linux-gnu) of 2023-02-13 built
on trinity
Repository revision: e0b60120a1c3433fe332bff56b5b7483b0424d5c
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101099
System Description: Fedora Linux 37 (Workstation Edition)
Configured using:
'configure --with-x --with-x-toolkit=no --without-cairo
--with-dumping=unexec --cache-file=/tmp/ccache'
Configured features:
ACL DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2
LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY OLDXMENU PNG RSVG
SECCOMP SOUND SQLITE3 THREADS TIFF TREE_SITTER UNEXEC WEBP X11 XDBE XFT
XIM XINPUT2 XPM ZLIB
Important settings:
value of $LANG: en_GB.utf8
value of $XMODIFIERS: @im=none
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
display-line-numbers c-ts-mode cl-extra help-mode warnings icons
c-ts-common treesit cl-seq cl-loaddefs cl-lib 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 dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting xinput2 x
multi-tty make-network-process emacs)
Memory information:
((conses 16 110475 7691)
(symbols 48 21846 0)
(strings 32 31362 1808)
(string-bytes 1 774600)
(vectors 16 18868)
(vector-slots 8 795767 66178)
(floats 8 67 68)
(intervals 56 441 2)
(buffers 984 15))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61482
; Package
emacs
.
(Tue, 21 Feb 2023 08:58:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 61482 <at> debbugs.gnu.org (full text, mbox):
Po Lu <luangruo <at> yahoo.com> writes:
> 2011 Standard C has a feature that works like `switch', except it
> switches upon the type of an expression at compile time.
>
> This does not seem to be supported at all with c-ts-mode:
>
> {
> const char *typename = _Generic ((expr),
> const char *:
> "const char *",
> int:
> "int",
> unsigned long:
> "unsigned long",
> default:
> NULL);
> }
>
> here, none of the types are fontified (which fares worse than CC Mode),
> nor is _Generic fontified as a keyword. Indenting anywhere inside the
> _Generic expression also results in nothing happening.
That’s the same as _Noreturn, tree-sitter-c doesn’t support it now. See
https://github.com/tree-sitter/tree-sitter-c/issues/124, I opened an
issue requesting for _Generic and _Noreturn. But I don’t really know
much about these features, please see if I described it correctly.
Yuan
This bug report was last modified 1 year and 279 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.