Subject: 29.0.60; bad syntanx table in c++-ts-mode
From: Yang Yingchao <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Tue, 27 Dec 2022 13:48:21 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

1. start emacs with emacs -Q

2. open a buffer, M-x c++-ts-mode, theninsert following codes:
int main(int argc, char *argv[])
{
    if (0) {
        a->func();
    }
    return 0;
}

3. move cursor to line 3, before the bracket
4. C-M-n (forward-list), and cursor will be placed at line 4, right after "->"

I think this might be an regression after commit 480f41c7deb4d3a45a862a5308950b35085f835d

Regargds

In GNU Emacs 29.0.60 (build 30, x86_64-pc-linux-gnu, GTK+ Version 3.24.35,
 cairo version 1.17.6) of 2022-12-27 built on tbook
Repository revision: 03d8fe28bc9ec4262fd0e7e763a6eae73838deb1
Repository branch: yc-hacking
System Description: Gentoo Linux

Configured using:
 'configure 'CFLAGS=-O2 -g -pipe -march=native -ggdb3' 'LDFLAGS=-Wl,-O2
 -Wl,--as-needed' --prefix=/usr --build=x86_64-pc-linux-gnu
 --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info
 --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib
 --datarootdir=/usr/share --disable-silent-rules
 --docdir=/usr/share/doc/emacs-29.0.9999-r1
 --htmldir=/usr/share/doc/emacs-29.0.9999-r1/html --libdir=/usr/lib64
 --program-suffix=-emacs-29-vcs --includedir=/usr/include/emacs-29-vcs
 --infodir=/usr/share/info/emacs-29-vcs --localstatedir=/var
 --enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp
 --without-compress-install --without-hesiod --without-pop
 --with-file-notification=inotify --with-pdumper --enable-acl --with-dbus
 --with-modules --without-gameuser --with-libgmp --without-gpm
 --with-native-compilation --with-json --without-kerberos --without-kerberos5
 --with-lcms2 --with-xml2 --without-mailutils --without-selinux --with-sqlite3
 --with-gnutls --with-libsystemd --with-threads --with-wide-int --with-zlib
 --with-sound=alsa --with-pgtk --without-x --without-ns
 --with-toolkit-scroll-bars --without-gconf --without-gsettings
 --with-harfbuzz --without-libotf --without-m17n-flt --without-xwidgets
 --with-gif --with-jpeg --with-png --with-rsvg --with-tiff --with-webp
 --with-imagemagick --with-dumping=pdumper build_alias=x86_64-pc-linux-gnu
 host_alias=x86_64-pc-linux-gnu
 PKG_CONFIG_PATH=/home/yyc/.local/lib/pkgconfig'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ IMAGEMAGICK JPEG JSON
LCMS2 LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG
RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP
XIM GTK3 ZLIB

Important settings:
  value of $LANG: zh_CN.utf8
  value of $XMODIFIERS: @im=fcitx
  locale-coding-system: utf-8

Major mode: Helpful

Minor modes in effect:
  org-msg-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  shell-dirtrack-mode: t
  recentf-mode: t
  marginalia-mode: t
  projectile-mode: t
  super-save-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  dtrt-indent-global-mode: t
  which-key-mode: t
  global-so-long-mode: t
  gcmh-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-company-mode: t
  company-mode: t
  which-function-mode: t
  auto-image-file-mode: t
  global-atomic-chrome-edit-mode: t
  smartparens-global-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  server-mode: t
  savehist-mode: t
  vertico-mode: t
  override-global-mode: t
  straight-use-package-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  line-number-mode: t
  auto-fill-function: yas--auto-fill
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/yyc/.emacs.d/straight/build/cmake-mode/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/home/yyc/.emacs.d/straight/build/transient/transient hides /home/yyc/Work/emacs/lisp/transient
/home/yyc/.emacs.d/straight/build/eldoc/eldoc hides /home/yyc/Work/emacs/lisp/emacs-lisp/eldoc
/home/yyc/.emacs.d/straight/build/let-alist/let-alist hides /home/yyc/Work/emacs/lisp/emacs-lisp/let-alist

Features:
(shadow org-msg htmlize gnus-msg gnus-icalendar org-protocol org-capture
icalendar diary-lib diary-loaddefs gnus-dired gnus-cite mu4e mu4e-org
mu4e-main mu4e-view mu4e-headers mu4e-compose mu4e-draft mu4e-actions smtpmail
mu4e-search mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message flow-fill
mu4e-contacts mu4e-update mu4e-folders mu4e-server mu4e-context mu4e-vars
mu4e-helpers mu4e-config ido cl-print consult-eww embark-org embark-consult
embark ygit consult-tramp-docker tramp-container request git-rebase
magit-extras vc vc-dispatcher goto-addr conf-mode emacsbug timezone helpful
cc-langs trace edebug debug backtrace info-look elisp-refs bug-reference
help-fns radix-tree ffap consult-utils tabify url-http url-gw url-cache
url-auth tdict vterm tramp tramp-loaddefs trampver tramp-integration cus-edit
cus-start cus-load files-x tramp-compat ls-lisp face-remap term ehelp
term/xterm xterm vterm-module pulse consult-xref smart-hungry-delete
consult-woman woman man lsp-headerline lsp-icons company-shell sh-script smie
misearch multi-isearch ace-window mule-util flycheck-popup-tip flycheck
lsp-diagnostics view lsp-zig lsp-steep lsp-svelte lsp-sqls
lsp-ruby-syntax-tree lsp-yaml lsp-xml lsp-vimscript lsp-vhdl lsp-volar
lsp-vetur lsp-html lsp-verilog lsp-vala lsp-v lsp-typeprof lsp-ttcn3 lsp-toml
lsp-terraform lsp-tex lsp-sorbet lsp-solargraph lsp-rust lsp-rf lsp-remark
lsp-racket lsp-r lsp-purescript lsp-pylsp lsp-pyls lsp-pwsh lsp-php lsp-pls
lsp-perlnavigator lsp-perl lsp-openscad lsp-ocaml lsp-magik lsp-nix lsp-nim
lsp-nginx lsp-mint lsp-marksman lsp-markdown lsp-lua lsp-kotlin lsp-json
lsp-javascript lsp-idris lsp-haxe lsp-groovy lsp-hack lsp-graphql lsp-gleam
lsp-go lsp-completion lsp-gdscript lsp-fsharp lsp-fortran lsp-eslint
lsp-erlang lsp-emmet lsp-elixir lsp-elm lsp-dockerfile lsp-dhall lsp-d lsp-css
lsp-csharp lsp-crystal lsp-cmake lsp-clojure lsp-semantic-tokens lsp-beancount
lsp-bash lsp-astro lsp-ansible lsp-angular lsp-ada lsp-actionscript prog-utils
consult-imenu ycv gxref yc-filter-lines-mode semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw cedet srecode mode-local lsp
lsp-clangd highlight-parentheses emr-c c-utils lsp-mode lsp-protocol xref
spinner network-stream nsm smartparens-markdown markdown-mode edit-indirect
color lv inline ht ewoc smartparens-c cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs c-ts-mode treesit
magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash
magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit
package url-handlers magit-repos magit-apply magit-wip magit-log magit-diff
smerge-mode diff-mode git-commit log-edit pcvs-util add-log magit-core
magit-autorevert autorevert magit-margin magit-transient magit-process
with-editor magit-mode transient magit-git magit-base magit-section crm
compat-27 compat-26 dired-aux orderless vertico-directory vertico-repeat
cursor-sensor consult-projectile hl-line flyspell ispell oc-basic ol-eww eww
mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015
mm-view mml-smime smime gnutls dig gnus-sum gnus-group gnus-undo gnus-start
gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time
gnus-spec gnus-int gnus-range gnus-win gnus nnheader range ol-docview doc-view
filenotify jka-compr image-mode exif ol-bibtex bibtex iso8601 ol-bbdb ol-w3m
ol-doi org-link-doi yc-utils executable rect async consult-vertico consult
compat-28 compat compat-macs f f-shortdoc shortdoc elfeed-org elfeed-show
elfeed-search autoinsert bookmark message sendmail yank-media dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader shrface
org-superstar smartparens-org ob-sql ob-shell shell ob-gnuplot ob-plantuml
ob-dot ob-ditaa org-indent ox-plus ox-gfm ox-md ox-odt rng-loc rng-uri
rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc
xmltok nxml-util ox-latex ox-icalendar org-agenda ox-html table ox-ascii
ox-publish ox org-element org-persist xdg org-id org-refile org ob ob-tangle
ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete
pcomplete org-list org-footnote org-faces org-entities noutline outline
ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core
org-keys oc org-loaddefs find-func cal-menu calendar cal-loaddefs org-version
org-compat org-macs format-spec shr pixel-fill kinsoku puny svg dom elfeed-csv
elfeed elfeed-curl elfeed-log elfeed-db elfeed-lib avl-tree generator
url-queue url-file browse-url url url-proxy url-privacy url-expand url-methods
url-history mailcap xml-query xml tb-dark-theme pp recentf tree-widget
wid-edit marginalia comp comp-cstr warnings icons projectile project lisp-mnt
grep compile text-property-search comint ansi-osc ansi-color ibuf-ext ibuffer
ibuffer-loaddefs super-save ws-butler dtrt-indent which-key so-long ace-link
avy ring gcmh yasnippet company-files company-capf company-yasnippet company
emr-others emr-iedit iedit iedit-lib emr-lsp time-date which-func imenu emr
popup image-file image-converter atomic-chrome websocket url-cookie
generate-lisp-file url-domsuf url-util url-parse auth-source eieio eieio-core
password-cache url-vars bindat let-alist json map s smartparens-config
smartparens-text smartparens byte-opt thingatpt undo-tree diff queue server
pinentry 99-priv 071-miscs-vcs gitlab-ci-mode-flycheck-autoloads
gitlab-ci-mode-autoloads magit-autoloads git-commit-autoloads 07-other-modes
po-mode-autoloads baidu-translate-autoloads names-autoloads advice
with-editor-autoloads pinentry-autoloads org-msg-autoloads docker-autoloads
transient-autoloads aio-autoloads rime-autoloads posframe-autoloads
elfeed-org-autoloads elfeed-autoloads htmlize-autoloads
atomic-chrome-autoloads websocket-autoloads ztree-autoloads xclip-autoloads
vimrc-mode-autoloads request-autoloads parse-csv-autoloads httpcode-autoloads
edit-indirect-autoloads dired-du-autoloads vterm-autoloads pdf-tools-autoloads
tablist-autoloads nov-autoloads esxml-autoloads kv-autoloads w3m-load
w3m-autoloads shrface-autoloads language-detection-autoloads
rfc-mode-autoloads highlight-symbol-autoloads highlight-parentheses-autoloads
06-org-mode org-roam-autoloads magit-section-autoloads
emacsql-sqlite-autoloads emacsql-autoloads org-superstar-autoloads
ox-reveal-autoloads org-download-autoloads flycheck-plantuml-autoloads
plantuml-mode-autoloads ox-gfm-autoloads 056-prog-others meson-mode-autoloads
groovy-mode-autoloads go-mode-autoloads lua-mode-autoloads rust-mode-autoloads
sql-indent-autoloads sqlup-mode-autoloads bison-mode-autoloads
yaml-mode-autoloads 055-prog-make cmake-mode-autoloads 054-prog-debug
realgud-autoloads realgud-recursive-autoloads test-simple-autoloads
loc-changes-autoloads load-relative-autoloads 053-prog-scripts
company-shell-autoloads py-autopep8-autoloads 052-prog-elisp 051-prog-c
clang-format-autoloads 05-prog-common consult-dash-autoloads
dash-docs-autoloads async-autoloads lsp-mode-autoloads eldoc-autoloads
lv-autoloads markdown-mode-autoloads spinner-autoloads ht-autoloads
gxref-autoloads iedit-autoloads flycheck-popup-tip-autoloads popup-autoloads
flycheck-autoloads let-alist-autoloads pkg-info-autoloads epl-autoloads
04-completion company-autoloads yasnippet-autoloads 03-fundamental-mode
gcmh-autoloads ace-link-autoloads ace-window-autoloads avy-autoloads
wgrep-autoloads which-key-autoloads undo-tree-autoloads queue-autoloads
dtrt-indent-autoloads ws-butler-autoloads super-save-autoloads ibuf-macs
helpful-autoloads elisp-refs-autoloads f-autoloads s-autoloads vlf-autoloads
smart-hungry-delete-autoloads smartparens-autoloads finder-inf
consult-projectile-autoloads projectile-autoloads embark-consult-autoloads
embark-autoloads marginalia-autoloads consult-autoloads compat-autoloads
savehist edmacro kmacro vertico vertico-autoloads orderless-autoloads
02-functions rx dash pcase 01-general disp-table dash-autoloads info cl-seq
use-package use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core straight-autoloads
cl-extra help-mode straight subr-x cl-macs gv cl-loaddefs cl-lib bytecomp
byte-compile site-gentoo early-init china-util rmc iso-transl tooltip cconv
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
mwheel term/pgtk-win pgtk-win term/common-win pgtk-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 dynamic-setting
font-render-setting cairo gtk pgtk lcms2 multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 1125016 337556)
 (symbols 48 64967 60)
 (strings 32 357037 105018)
 (string-bytes 1 12423127)
 (vectors 16 164456)
 (vector-slots 8 3605987 411457)
 (floats 8 6320 5703)
 (intervals 56 15656 7202)
 (buffers 984 53))
Hi **,

--
Yang Yingchao
Yang Yingchao