all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#62953: 29.0.60; c-ts-mode: extra line indentation is required after brackets
@ 2023-04-19 15:02 norris
  2023-04-20  6:08 ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: norris @ 2023-04-19 15:02 UTC (permalink / raw)
  To: 62953

[-- Attachment #1: Type: text/plain, Size: 8501 bytes --]

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

[-- Attachment #2: Type: text/html, Size: 9436 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#62953: 29.0.60; c-ts-mode: extra line indentation is required after brackets
  2023-04-19 15:02 bug#62953: 29.0.60; c-ts-mode: extra line indentation is required after brackets norris
@ 2023-04-20  6:08 ` Eli Zaretskii
       [not found]   ` <CAL+47W2=E49DUM=HKG=JWWYzgGU_ONR7aiCM4J21Wz3C4iipnw@mail.gmail.com>
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2023-04-20  6:08 UTC (permalink / raw)
  To: norris; +Cc: 62953

> From: norris <shading.young@gmail.com>
> Date: Wed, 19 Apr 2023 23:02:20 +0800
> 
> 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.

I cannot reproduce this with the latest emacs-29 branch.

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

This is a month-old snapshot of emacs-29.  So maybe the problem was
fixed meanwhile.  Or maybe you didn't describe all the steps needed to
reproduce the issue.  In particular, the if cause you show is supposed
to be inside a function's body, but you don't show the rest of that
body.  So please provide a step by step description of the recipe to
reproduce the issue, starting from "emacs -Q".

Thanks.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#62953: Fwd: bug#62953: 29.0.60; c-ts-mode: extra line indentation is required after brackets
       [not found]   ` <CAL+47W2=E49DUM=HKG=JWWYzgGU_ONR7aiCM4J21Wz3C4iipnw@mail.gmail.com>
@ 2023-04-22  2:59     ` norris
  2023-04-22  3:18       ` norris
  0 siblings, 1 reply; 5+ messages in thread
From: norris @ 2023-04-22  2:59 UTC (permalink / raw)
  To: 62953

[-- Attachment #1: Type: text/plain, Size: 484 bytes --]

> I cannot reproduce this with the latest emacs-29 branch.

I just tried with the latest emacs-29 branch, and found that the c-mode
and c-ts-mode are the same when starting from "emacs -Q".
After RET in both c-mode and c-ts-mode, I got:
```
if (a) {
|}
```
So, extra line might be a feature of a minor mode instead of major c-mode
or c-ts-mode where I was wrong. Then I found that this is a feature of the
package 'smartparens' . I'm trying to find why it does not work in
c-ts-mode.

[-- Attachment #2: Type: text/html, Size: 748 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#62953: 29.0.60; c-ts-mode: extra line indentation is required after brackets
  2023-04-22  2:59     ` bug#62953: Fwd: " norris
@ 2023-04-22  3:18       ` norris
  2023-04-22  7:38         ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: norris @ 2023-04-22  3:18 UTC (permalink / raw)
  To: 62953

[-- Attachment #1: Type: text/plain, Size: 738 bytes --]

After adding 'c-ts-mode' and 'c++-ts-mode' to the variable 'sp-c-modes' of
the package 'smartparens', it works now.

Thanks! Eli!

norris <shading.young@gmail.com> 于2023年4月22日周六 10:59写道:

> > I cannot reproduce this with the latest emacs-29 branch.
>
> I just tried with the latest emacs-29 branch, and found that the c-mode
> and c-ts-mode are the same when starting from "emacs -Q".
> After RET in both c-mode and c-ts-mode, I got:
> ```
> if (a) {
> |}
> ```
> So, extra line might be a feature of a minor mode instead of major c-mode
> or c-ts-mode where I was wrong. Then I found that this is a feature of the
> package 'smartparens' . I'm trying to find why it does not work in
> c-ts-mode.
>

[-- Attachment #2: Type: text/html, Size: 1303 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#62953: 29.0.60; c-ts-mode: extra line indentation is required after brackets
  2023-04-22  3:18       ` norris
@ 2023-04-22  7:38         ` Eli Zaretskii
  0 siblings, 0 replies; 5+ messages in thread
From: Eli Zaretskii @ 2023-04-22  7:38 UTC (permalink / raw)
  To: norris; +Cc: 62953-done

> From: norris <shading.young@gmail.com>
> Date: Sat, 22 Apr 2023 11:18:25 +0800
> 
> After adding 'c-ts-mode' and 'c++-ts-mode' to the variable 'sp-c-modes' of
> the package 'smartparens', it works now.

Ah, so this is a problem with customization of smartparens, not with
vanilla Emacs?  If so, I'm closing this bug as not being an Emacs
issue.





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-04-22  7:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-19 15:02 bug#62953: 29.0.60; c-ts-mode: extra line indentation is required after brackets norris
2023-04-20  6:08 ` Eli Zaretskii
     [not found]   ` <CAL+47W2=E49DUM=HKG=JWWYzgGU_ONR7aiCM4J21Wz3C4iipnw@mail.gmail.com>
2023-04-22  2:59     ` bug#62953: Fwd: " norris
2023-04-22  3:18       ` norris
2023-04-22  7:38         ` Eli Zaretskii

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.