In c-mode, it will add an extra line for RET after brackets. I expect the same behaviour 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 feature. ==================================================== 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))