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))