GNU bug report logs - #61626
29.0.60; The indentation of switch case is broken on typescript-ts-mode and tsx-ts-mode

Previous Next

Package: emacs;

Reported by: Eason Huang <aqua0210 <at> foxmail.com>

Date: Sun, 19 Feb 2023 13:26:02 UTC

Severity: normal

Found in version 29.0.60

To reply to this bug, email your comments to 61626 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#61626; Package emacs. (Sun, 19 Feb 2023 13:26:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Eason Huang <aqua0210 <at> foxmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 19 Feb 2023 13:26:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Eason Huang <aqua0210 <at> foxmail.com>
To: bug-gnu-emacs <at> gnu.org, Theodor Thornhill <theo <at> thornhill.no>
Subject: 29.0.60; The indentation of switch case is broken on
 typescript-ts-mode and tsx-ts-mode
Date: Sun, 19 Feb 2023 21:24:30 +0800
Hello Theodor and Emacs dev team,

Recently I found that the indentation is broken in typescript-ts-mode
and tsx-ts-mode. When I press RET (M-x newline) after the ':' in the
case clause, it will always indent to the the same position of previouse line.

For example:
In typescript-ts-mode and tsx-ts-mode will get this result as below:

```
let day: number = 1;

switch (day) {
case 0:
console.log("It is a Sunday.");
break;
case 1:
console.log("It is a Monday.");
break;
default:
console.log("No such day exists!");
break;
}
```
expected:

```
let day: number = 1;

switch (day) {
case 0:
  console.log("It is a Sunday.");
  break;
case 1:
  console.log("It is a Monday.");
  break;
default:
  console.log("No such day exists!");
break;
}
```

steps to reprodue:

1. start emacs with `emacs -Q`
2. C-x C-f ~/test.tsx to open a test.tsx
3. M-x typescript-ts-mode
4. input the exmaple code mentioned above
5. you will see the result.

--
Eason Huang

In GNU Emacs 29.0.60 (build 1, x86_64-apple-darwin22.2.0, NS
 appkit-2299.30 Version 13.1 (Build 22C65), git sha1 893ddd5903e) of
 2023-02-19 built on macbook
Windowing system distributor 'Apple', version 10.3.2299
System Description:  macOS 13.1

Configured using:
 'configure --without-native-compilation --without-dbus
 'CPPFLAGS=-I/opt/local/include
 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'
 'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-rpath
 /opt/local/lib/gcc12
 -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
 -arch x86_64''

Configured features:
ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY KQUEUE NS
PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER
WEBP XIM ZLIB

Important settings:
  value of $LC_CTYPE: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: TypeScript

Minor modes in effect:
  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
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search time-date mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils vc-git
diff-mode easy-mmode vc-dispatcher typescript-ts-mode js c-ts-common
json subr-x map byte-opt gv bytecomp byte-compile imenu cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
treesit cl-seq cl-loaddefs cl-lib emacs-git-version rmc iso-transl
tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize
mule-util term/common-win 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 kqueue cocoa ns lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 16 79887 12727)
 (symbols 48 8661 3)
 (strings 32 25763 2168)
 (string-bytes 1 934251)
 (vectors 16 16611)
 (vector-slots 8 226493 9391)
 (floats 8 29 58)
 (intervals 56 615 0)
 (buffers 984 14))

-- 
Eason Huang




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61626; Package emacs. (Sat, 25 Feb 2023 05:02:01 GMT) Full text and rfc822 format available.

Message #8 received at 61626 <at> debbugs.gnu.org (full text, mbox):

From: Yuan Fu <casouri <at> gmail.com>
To: Eason Huang <aqua0210 <at> foxmail.com>
Cc: theo <at> thornhill.no, 61626 <at> debbugs.gnu.org
Subject: Re: bug#61626: 29.0.60; The indentation of switch case is broken on 
 typescript-ts-mode and tsx-ts-mode
Date: Fri, 24 Feb 2023 21:00:45 -0800
[Message part 1 (text/plain, inline)]
Eason Huang <aqua0210 <at> foxmail.com> writes:

> Hello Theodor and Emacs dev team,
>
> Recently I found that the indentation is broken in typescript-ts-mode
> and tsx-ts-mode. When I press RET (M-x newline) after the ':' in the
> case clause, it will always indent to the the same position of previouse line.
>
> For example:
> In typescript-ts-mode and tsx-ts-mode will get this result as below:
>
> ```
> let day: number = 1;
>
> switch (day) {
> case 0:
> console.log("It is a Sunday.");
> break;
> case 1:
> console.log("It is a Monday.");
> break;
> default:
> console.log("No such day exists!");
> break;
> }
> ```
> expected:
>
> ```
> let day: number = 1;
>
> switch (day) {
> case 0:
>   console.log("It is a Sunday.");
>   break;
> case 1:
>   console.log("It is a Monday.");
>   break;
> default:
>   console.log("No such day exists!");
> break;
> }
> ```
>
> steps to reprodue:
>
> 1. start emacs with `emacs -Q`
> 2. C-x C-f ~/test.tsx to open a test.tsx
> 3. M-x typescript-ts-mode
> 4. input the exmaple code mentioned above
> 5. you will see the result.

The following patch should fix this, Theo, WDYT?

Yuan

[switch-case.patch (application/octet-stream, attachment)]
[Message part 3 (text/plain, inline)]


Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61626; Package emacs. (Sat, 25 Feb 2023 06:13:02 GMT) Full text and rfc822 format available.

Message #11 received at 61626 <at> debbugs.gnu.org (full text, mbox):

From: Theodor Thornhill <theo <at> thornhill.no>
To: Yuan Fu <casouri <at> gmail.com>, Eason Huang <aqua0210 <at> foxmail.com>
Cc: 61626 <at> debbugs.gnu.org
Subject: Re: bug#61626: 29.0.60; The indentation of switch case is broken on  typescript-ts-mode and tsx-ts-mode
Date: Sat, 25 Feb 2023 07:12:49 +0100

On 25 February 2023 06:00:45 CET, Yuan Fu <casouri <at> gmail.com> wrote:
>
>Eason Huang <aqua0210 <at> foxmail.com> writes:
>
>> Hello Theodor and Emacs dev team,
>>
>> Recently I found that the indentation is broken in typescript-ts-mode
>> and tsx-ts-mode. When I press RET (M-x newline) after the ':' in the
>> case clause, it will always indent to the the same position of previouse line.
>>
>> For example:
>> In typescript-ts-mode and tsx-ts-mode will get this result as below:
>>
>> ```
>> let day: number = 1;
>>
>> switch (day) {
>> case 0:
>> console.log("It is a Sunday.");
>> break;
>> case 1:
>> console.log("It is a Monday.");
>> break;
>> default:
>> console.log("No such day exists!");
>> break;
>> }
>> ```
>> expected:
>>
>> ```
>> let day: number = 1;
>>
>> switch (day) {
>> case 0:
>>   console.log("It is a Sunday.");
>>   break;
>> case 1:
>>   console.log("It is a Monday.");
>>   break;
>> default:
>>   console.log("No such day exists!");
>> break;
>> }
>> ```
>>
>> steps to reprodue:
>>
>> 1. start emacs with `emacs -Q`
>> 2. C-x C-f ~/test.tsx to open a test.tsx
>> 3. M-x typescript-ts-mode
>> 4. input the exmaple code mentioned above
>> 5. you will see the result.
>
>The following patch should fix this, Theo, WDYT?
>
>Yuan
>

This is already fixed:)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61626; Package emacs. (Sun, 26 Feb 2023 08:41:01 GMT) Full text and rfc822 format available.

Message #14 received at 61626 <at> debbugs.gnu.org (full text, mbox):

From: Yuan Fu <casouri <at> gmail.com>
To: Theodor Thornhill <theo <at> thornhill.no>
Cc: Eason Huang <aqua0210 <at> foxmail.com>, 61626 <at> debbugs.gnu.org
Subject: Re: bug#61626: 29.0.60; The indentation of switch case is broken on 
 typescript-ts-mode and tsx-ts-mode
Date: Sun, 26 Feb 2023 00:39:41 -0800

> On Feb 24, 2023, at 10:12 PM, Theodor Thornhill <theo <at> thornhill.no> wrote:
> 
> 
> 
> On 25 February 2023 06:00:45 CET, Yuan Fu <casouri <at> gmail.com> wrote:
>> 
>> Eason Huang <aqua0210 <at> foxmail.com> writes:
>> 
>>> Hello Theodor and Emacs dev team,
>>> 
>>> Recently I found that the indentation is broken in typescript-ts-mode
>>> and tsx-ts-mode. When I press RET (M-x newline) after the ':' in the
>>> case clause, it will always indent to the the same position of previouse line.
>>> 
>>> For example:
>>> In typescript-ts-mode and tsx-ts-mode will get this result as below:
>>> 
>>> ```
>>> let day: number = 1;
>>> 
>>> switch (day) {
>>> case 0:
>>> console.log("It is a Sunday.");
>>> break;
>>> case 1:
>>> console.log("It is a Monday.");
>>> break;
>>> default:
>>> console.log("No such day exists!");
>>> break;
>>> }
>>> ```
>>> expected:
>>> 
>>> ```
>>> let day: number = 1;
>>> 
>>> switch (day) {
>>> case 0:
>>>  console.log("It is a Sunday.");
>>>  break;
>>> case 1:
>>>  console.log("It is a Monday.");
>>>  break;
>>> default:
>>>  console.log("No such day exists!");
>>> break;
>>> }
>>> ```
>>> 
>>> steps to reprodue:
>>> 
>>> 1. start emacs with `emacs -Q`
>>> 2. C-x C-f ~/test.tsx to open a test.tsx
>>> 3. M-x typescript-ts-mode
>>> 4. input the exmaple code mentioned above
>>> 5. you will see the result.
>> 
>> The following patch should fix this, Theo, WDYT?
>> 
>> Yuan
>> 
> 
> This is already fixed:)

Oh! Glad I asked first ;-)

Yuan





This bug report was last modified 1 year and 31 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.