Subject: 29.0.60; c-ts-mode: extra line indentation is required after brackets
From: norris <[email-masked]>
To: [email-masked]
Date: Wed, 19 Apr 2023 23:02:20 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

In c-mode, it will add an extra line for RET after brackets. The same
behaviour is expected in c-ts-mode.

For example(where '|' stands for cursor):

```
if (a) {|}
```

After RET in c-mode:

```
if (a) {
    |
}
```

After RET in c-ts-mode:

```
if (a) {
|}
```

Not only if statement but also other cases with brackets want this.

====================================================
In GNU Emacs 29.0.60 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.37, cairo version 1.17.8) of 2023-03-14 built on spectre
Repository revision: e98f7f8a063a30d1a5effb9e623265019bf2553b
Repository branch: emacs-29
System Description: Arch Linux

Configured using:
 'configure --with-json --with-tree-sitter --with-pgtk
 --with-native-compilation'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ 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: en_US.UTF-8
  value of $XMODIFIERS: @im=fcitx
  locale-coding-system: utf-8-unix

Major mode: C/*

Minor modes in effect:
  windmove-mode: t
  recentf-mode: t
  shell-dirtrack-mode: t
  ivy-mode: t
  meow-global-mode: t
  meow-mode: t
  meow-normal-mode: t
  whitespace-mode: t
  display-fill-column-indicator-mode: t
  display-line-numbers-mode: t
  save-place-mode: t
  smartparens-global-mode: t
  smartparens-mode: t
  pixel-scroll-precision-mode: t
  global-hl-line-mode: t
  cnfonts-mode: t
  winum-mode: t
  shackle-mode: t
  lsp-bridge-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-treesit-auto-mode: t
  global-ts-fold-indicators-mode: t
  ts-fold-indicators-mode: t
  global-ts-fold-mode: t
  ts-fold-mode: t
  override-global-mode: t
  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
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Features:
(shadow sort mail-extr emacsbug message yank-media rfc822 mml mml-sec
epa epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils evil-matchit-prog
evil-matchit evil-matchit-sdk semantic/lex semantic/fw mode-local
citre-lang-c smartparens-c cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs repeat lisp-mnt finder-inf
shortdoc windmove tabify cus-edit cus-start cus-load recentf tree-widget
bookmark magit-base ido magit-section benchmark crm compat mule-util
jka-compr info-look c-ts-mode c-ts-common ffap tramp tramp-loaddefs
trampver tramp-integration files-x tramp-compat shell pcomplete
parse-time iso8601 time-date ls-lisp format-spec pp counsel xdg
citre-lang-fileref dired dired-loaddefs swiper vc-git diff-mode
vc-dispatcher help-fns+ info wid-edit help-fns radix-tree ivy flx
ivy-faces ivy-overlay colir meow meow-tutor meow-cheatsheet
meow-cheatsheet-layout meow-core meow-shims delsel meow-esc meow-command
array meow-beacon meow-thing meow-visual meow-keypad meow-helpers
meow-util meow-keymap meow-face meow-var network-stream puny nsm
edebug-x which-func imenu disp-table whitespace
display-fill-column-indicator display-line-numbers citre citre-global
citre-tags citre-ctags citre-readtags citre-readtags-tables
citre-backend-interface citre-ui-peek citre-ui-jump citre-common-tag
xref citre-common-util project saveplace smartparens-config
smartparens-markdown smartparens-text smartparens advice pixel-scroll
cua-base hl-line cnfonts winum dash shackle trace lsp-bridge comp
comp-cstr warnings lsp-bridge-lsp-installer lsp-bridge-diagnostic
lsp-bridge-code-action acm acm-quick-access acm-backend-citre
acm-backend-tailwind acm-backend-tabnine acm-backend-telega
acm-backend-tempel acm-backend-search-sdcv-words
acm-backend-search-file-words acm-backend-path acm-backend-lsp
acm-backend-elisp acm-backend-yas yasnippet acm-icon svg dom xml
lsp-bridge-call-hierarchy lsp-bridge-jdtls lsp-bridge-ref grep compile
text-property-search comint ansi-osc ring lsp-bridge-epc acm-frame diff
markdown-mode derived rx thingatpt noutline outline icons posframe
treesit-auto treesit ts-fold-indicators fringe-helper ts-fold
ts-fold-summary ts-fold-parsers ts-fold-util s init-prog
init-tree-sitter pcase init-lsp init-c init-window init-ui
sanityinc-tomorrow-eighties-theme color-theme-sanityinc-tomorrow
ansi-color color init-swiper two-column init-org init-misc init-lisp
edebug debug backtrace find-func package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source eieio eieio-core password-cache json subr-x map byte-opt
url-vars init-input init-git init-meow edmacro kmacro init-autoloads
yasnippet-doc-autoloads yasnippet-autoloads with-editor-lisp-autoloads
winum-autoloads ts-fold-autoloads treesit-auto-autoloads
tree-sitter-tests-autoloads tree-sitter-lisp-autoloads
tree-sitter-langs-bin-autoloads tree-sitter-langs-autoloads
tree-sitter-doc-ox-hugo-test-site-content-org-org-roam-autoloads
tree-sitter-doc-ox-hugo-test-site-content-org-dir-locals-autoloads
tree-sitter-doc-ox-hugo-test-autoloads
tree-sitter-doc-ox-hugo-doc-autoloads tree-sitter-doc-ox-hugo-autoloads
tree-sitter-doc-autoloads tree-sitter-core-autoloads
tree-sitter-autoloads transient-lisp-autoloads swiper-targets-autoloads
swiper-doc-autoloads swiper-autoloads smartparens-test-autoloads
smartparens-autoloads shackle-autoloads s-dev-autoloads s-autoloads
rime-autoloads posframe-autoloads popup-tests-autoloads popup-autoloads
org-superstar-tests-autoloads org-superstar-autoloads meow-autoloads
markdown-mode-tests-autoloads markdown-mode-scripts-autoloads
markdown-mode-autoloads magit-test-autoloads magit-lisp-autoloads
magit-autoloads lsp-bridge-test-autoloads lsp-bridge-autoloads
lsp-bridge-acm-autoloads imenu-list-autoloads
highlight-indent-guides-tests-autoloads
highlight-indent-guides-autoloads fringe-helper-autoloads
flx-tests-autoloads flx-misc-autoloads flx-autoloads
evil-matchit-tests-autoloads evil-matchit-autoloads edebug-x-autoloads
dash-dev-autoloads dash-autoloads compat-autoloads
color-theme-sanityinc-tomorrow-autoloads cnfonts-autoloads
citre-tests-tags-readtags-lib-autoloads
citre-tests-tags-readtags-ext-fields-autoloads
citre-tests-tags-lang-c-autoloads
citre-tests-tags-expression-builder-autoloads
citre-tests-tags-default-sorter-autoloads citre-tests-global-autoloads
citre-tests-common-tag-locate-autoloads
citre-tests-common-tag-api-autoloads
citre-tests-common-process-autoloads citre-tests-autoloads
citre-autoloads acm-terminal-autoloads cl-macs gv use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core bytecomp
byte-compile cl-extra help-mode 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/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 system-font-setting
font-render-setting cairo gtk pgtk lcms2 multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 789775 1488979)
 (symbols 48 34292 18)
 (strings 32 112878 62396)
 (string-bytes 1 4142142)
 (vectors 16 47773)
 (vector-slots 8 1601231 590173)
 (floats 8 520 936)
 (intervals 56 7330 4806)
 (buffers 984 28))