From unknown Sun Jun 22 07:53:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#67488: [PATCH] Fix typescript-ts-mode indentation for switch statements Resent-From: Noah Peart Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 27 Nov 2023 17:09:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 67488 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 67488@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.170110490821936 (code B ref -1); Mon, 27 Nov 2023 17:09:01 +0000 Received: (at submit) by debbugs.gnu.org; 27 Nov 2023 17:08:28 +0000 Received: from localhost ([127.0.0.1]:44665 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7f5v-0005hk-Av for submit@debbugs.gnu.org; Mon, 27 Nov 2023 12:08:27 -0500 Received: from lists.gnu.org ([2001:470:142::17]:32816) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7f5u-0005hK-07 for submit@debbugs.gnu.org; Mon, 27 Nov 2023 12:08:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r7f5h-0007Ld-LF for bug-gnu-emacs@gnu.org; Mon, 27 Nov 2023 12:08:13 -0500 Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1r7f5b-0004ZQ-LH for bug-gnu-emacs@gnu.org; Mon, 27 Nov 2023 12:08:13 -0500 Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-1efabc436e4so3007004fac.1 for ; Mon, 27 Nov 2023 09:08:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701104883; x=1701709683; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=EdC/TM4m8hiSO+g/4kgaQ8aDbdIx+f1KSzpYDiFfdOU=; b=P4WSVGlfTWhmeDuqy1AiV0lb2Ggt/fhDkMsKBeAMJG/mQ2fDQxDrDzTSsz2diAVAx/ CTPTWCASbpdBgOiqJ+7PE2jsKZDn7S4DwAB+aizn8DH/MDyaSVPhXZ9M7x8e2bA/WQU2 eVKKKDIZVv4Yinkef1L14xyeoEBoNeQcZd3oDi8AW4u5nYQIzY0h0Xr/8Yx2qGPwkCHH JTcT3F+Va/tGvO95YO+YgNavTmWoSmKmzxNkwE0qsPGbY2YZDIfz8aRtJr07nGUGIZPX xMv7NdvigGVSOVHfKN7XaaH8/P8HqkQrE9M+XO00qEgw5P+aR0uVpa6WEG4D+bjt57fQ EXqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701104883; x=1701709683; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=EdC/TM4m8hiSO+g/4kgaQ8aDbdIx+f1KSzpYDiFfdOU=; b=blEghT76oRthfgwO5bwCrwVydPbA/VF1Q1T8th3v6sxrr4q8/bDvjXCx+gT8kxyrgw byH52z+q0gxGkX5b6iGGajZaj/c0l4vH/eJ9w+VfwmFGNVO2WKWVOHkVWu70YeXXSlTl tMZG+gfIsRDp99yg+P6/Tg6EZJyAzJQPxnsG8NYygMpvdE2ECG9znZ54+KOTluAkjfTQ NEORVU45MTFNCEzJUTgvbYuQorf5iDlkn8J1AbFXNIo5OaSMoRiVLm7izEI8XJztUQiY RCczMFLWHjkuDl+1y2aWlXjl3TUUXjgSj6VZA5yOgmvMUImEckHDRYKySKyJp11CZ8ep cFKg== X-Gm-Message-State: AOJu0YxQVP7jbrS1hj4N/vDQkRnJKUDGw6n/mHTpu/Ff+11vpQ5QeiDm 2louts9/Fv8e7Y1IVKNDoVojz8LaLItTa3vPM50Dp1L1uxwh9bL5 X-Google-Smtp-Source: AGHT+IEpisNZZEyfrdRSMNWlLoZl9oXMOXTRqcwp6n6KwmVR+IIOYSqx/G+dCo/BFxU9PQzUC5HWovRoX1uTOg6xuqE= X-Received: by 2002:a05:6871:e499:b0:1fa:345e:5e14 with SMTP id pz25-20020a056871e49900b001fa345e5e14mr9498338oac.36.1701104882812; Mon, 27 Nov 2023 09:08:02 -0800 (PST) MIME-Version: 1.0 From: Noah Peart Date: Mon, 27 Nov 2023 09:07:51 -0800 Message-ID: Content-Type: multipart/mixed; boundary="00000000000044208f060b255897" Received-SPF: pass client-ip=2001:4860:4864:20::2c; envelope-from=noah.v.peart@gmail.com; helo=mail-oa1-x2c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --00000000000044208f060b255897 Content-Type: multipart/alternative; boundary="00000000000044208e060b255895" --00000000000044208e060b255895 Content-Type: text/plain; charset="UTF-8" Tags: patch * lisp/progmodes/typescript-ts-mode.el(typescript-ts-mode): Add indentation rule for switch case and default keywords. Bug: `typescript-ts-mode` is missing indentation rules for 'case' and 'default' keywords in switch statements. Recipe to reproduce: Copy the following code into a buffer: const foo = (x: string) => { switch (x) { case "a": console.log(x); return 1; case "b": return 2; case "c": default: return 0; } }; And call the following function to configure typescript-ts-mode and indent the buffer (defun my-ts-indentation () (interactive) (setq indent-tabs-mode nil) (setq typescript-ts-mode-indent-offset 2) (typescript-ts-mode) (indent-region (point-min) (point-max))) The indentation for the 'case' and 'default' branches within the switch statement should still be unchanged due to missing indent rules. Bug applies to emacs 29 as well. In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0) of 2023-11-27 built on noah-X580VD Repository revision: 76cf700ecb78cb465bcd05ae2b2fb0d28e4d0aed Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101004 System Description: Ubuntu 22.04.3 LTS Configured using: 'configure --prefix=/usr/local --with-modules --with-tree-sitter --with-threads --with-x-toolkit=gtk3 --with-xwidgets --with-gnutls --with-json --with-mailutils --with-jpeg --with-png --with-rsvg --with-tiff --with-xml2 --with-xpm --with-imagemagick CC=gcc-12 CXX=gcc-12' --00000000000044208e060b255895 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Tags: patch

* lisp/progmodes/typescript-ts-mode.el(= typescript-ts-mode): Add indentation
rule for switch case and default ke= ywords.

Bug: `typescript-ts-mode` is missing indentation rules for &= #39;case' and
'default' keywords in switch statements.
Recipe to reproduce:
Copy the following code into a buffer:

=C2= =A0 =C2=A0 const foo =3D (x: string) =3D> {
=C2=A0 =C2=A0 =C2=A0 swit= ch (x) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = case "a":
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 console.log(x);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 return 1;
=C2=A0 =C2=A0 case "b":
=C2=A0 = =C2=A0 =C2=A0 return 2;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 case "c":
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 default:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return 0;
=C2=A0 =C2=A0 =C2=A0 }
= =C2=A0 =C2=A0 };

And call the following function to configure typesc= ript-ts-mode and
indent the buffer

=C2=A0 =C2=A0 (defun my-ts-ind= entation ()
=C2=A0 =C2=A0 =C2=A0 (interactive)
=C2=A0 =C2=A0 =C2=A0 (= setq indent-tabs-mode nil)
=C2=A0 =C2=A0 =C2=A0 (setq typescript-ts-mode= -indent-offset 2)
=C2=A0 =C2=A0 =C2=A0 (typescript-ts-mode)
=C2=A0 = =C2=A0 =C2=A0 (indent-region (point-min) (point-max)))

The indentati= on for the 'case' and 'default' branches within the switch<= br>statement should still be unchanged due to missing indent rules.
Bug= applies to emacs 29 as well.


In GNU Emacs 30.0.50 (build 1, x86= _64-pc-linux-gnu, GTK+ Version
3.24.33, cairo version 1.16.0) of 2023-11= -27 built on noah-X580VD
Repository revision: 76cf700ecb78cb465bcd05ae2b= 2fb0d28e4d0aed
Repository branch: master
Windowing system distributor= 'The X.Org Foundation', version 11.0.12101004
System Descriptio= n: Ubuntu 22.04.3 LTS

Configured using:
=C2=A0'configure --pr= efix=3D/usr/local --with-modules --with-tree-sitter
--with-threads --wit= h-x-toolkit=3Dgtk3 --with-xwidgets --with-gnutls
--with-json --with-mail= utils --with-jpeg --with-png --with-rsvg
--with-tiff --with-xml2 --with-= xpm --with-imagemagick CC=3Dgcc-12
CXX=3Dgcc-12'
--00000000000044208e060b255895-- --00000000000044208f060b255897 Content-Type: text/x-patch; charset="US-ASCII"; name="typescript-ts-mode-switch-indentation.patch" Content-Disposition: attachment; filename="typescript-ts-mode-switch-indentation.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lph5votp0 RnJvbSA5N2NiYWUzOTU2MjIzM2E2ZWI5ZjIzOTNhZDY1NTZiODQwOWE3ZWFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBudmVybm8gPG5vYWgudi5wZWFydEBnbWFpbC5jb20+CkRhdGU6 IE1vbiwgMjcgTm92IDIwMjMgMDg6NTU6MjMgLTA4MDAKU3ViamVjdDogW1BBVENIXSBGaXggdHlw ZXNjcmlwdC10cy1tb2RlIGluZGVudGF0aW9uIGZvciBzd2l0Y2ggc3RhdGVtZW50cwoKKiBsaXNw L3Byb2dtb2Rlcy90eXBlc2NyaXB0LXRzLW1vZGUuZWwodHlwZXNjcmlwdC10cy1tb2RlKTogQWRk IGluZGVudGF0aW9uCnJ1bGUgZm9yIHN3aXRjaCBjYXNlIGFuZCBkZWZhdWx0IGtleXdvcmRzLgot LS0KIGxpc3AvcHJvZ21vZGVzL3R5cGVzY3JpcHQtdHMtbW9kZS5lbCAgICAgICAgICAgIHwgIDMg KysrCiAuLi4vdHlwZXNjcmlwdC10cy1tb2RlLXJlc291cmNlcy9pbmRlbnQuZXJ0cyAgICB8IDE3 ICsrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9saXNwL3Byb2dtb2Rlcy90eXBlc2NyaXB0LXRzLW1vZGUuZWwgYi9saXNwL3By b2dtb2Rlcy90eXBlc2NyaXB0LXRzLW1vZGUuZWwKaW5kZXggMDUwM2M3MjRkMzYuLjc5OThiMzc0 MGI2IDEwMDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy90eXBlc2NyaXB0LXRzLW1vZGUuZWwKKysr IGIvbGlzcC9wcm9nbW9kZXMvdHlwZXNjcmlwdC10cy1tb2RlLmVsCkBAIC0xMDcsNiArMTA3LDkg QEAgdHlwZXNjcmlwdC10cy1tb2RlLS1pbmRlbnQtcnVsZXMKICAgICAgKChwYXJlbnQtaXMgIm1l bWJlcl9leHByZXNzaW9uIikgcGFyZW50LWJvbCB0eXBlc2NyaXB0LXRzLW1vZGUtaW5kZW50LW9m ZnNldCkKICAgICAgKChwYXJlbnQtaXMgIm5hbWVkX2ltcG9ydHMiKSBwYXJlbnQtYm9sIHR5cGVz Y3JpcHQtdHMtbW9kZS1pbmRlbnQtb2Zmc2V0KQogICAgICAoKHBhcmVudC1pcyAic3RhdGVtZW50 X2Jsb2NrIikgcGFyZW50LWJvbCB0eXBlc2NyaXB0LXRzLW1vZGUtaW5kZW50LW9mZnNldCkKKyAg ICAgKChvciAobm9kZS1pcyAiY2FzZSIpCisgICAgICAgICAgKG5vZGUtaXMgImRlZmF1bHQiKSkK KyAgICAgIHBhcmVudC1ib2wgdHlwZXNjcmlwdC10cy1tb2RlLWluZGVudC1vZmZzZXQpCiAgICAg ICgocGFyZW50LWlzICJzd2l0Y2hfY2FzZSIpIHBhcmVudC1ib2wgdHlwZXNjcmlwdC10cy1tb2Rl LWluZGVudC1vZmZzZXQpCiAgICAgICgocGFyZW50LWlzICJzd2l0Y2hfZGVmYXVsdCIpIHBhcmVu dC1ib2wgdHlwZXNjcmlwdC10cy1tb2RlLWluZGVudC1vZmZzZXQpCiAgICAgICgocGFyZW50LWlz ICJ0eXBlX2FyZ3VtZW50cyIpIHBhcmVudC1ib2wgdHlwZXNjcmlwdC10cy1tb2RlLWluZGVudC1v ZmZzZXQpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3R5cGVzY3JpcHQtdHMtbW9k ZS1yZXNvdXJjZXMvaW5kZW50LmVydHMgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3R5cGVzY3JpcHQt dHMtbW9kZS1yZXNvdXJjZXMvaW5kZW50LmVydHMKaW5kZXggMjBmNDIzMjU5YjQuLjdiNjE4NWUw Mzg2IDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3R5cGVzY3JpcHQtdHMtbW9kZS1y ZXNvdXJjZXMvaW5kZW50LmVydHMKKysrIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy90eXBlc2NyaXB0 LXRzLW1vZGUtcmVzb3VyY2VzL2luZGVudC5lcnRzCkBAIC00NSw2ICs0NSwyMyBAQCBjb25zdCBm b28gPSAoKSA9PiB7CiB9OwogPS09LT0KIAorTmFtZTogU3dpdGNoIHN0YXRlbWVudAorCis9LT0K K2NvbnN0IGZvbyA9ICh4OiBzdHJpbmcpID0+IHsKKyAgc3dpdGNoICh4KSB7CisgICAgY2FzZSAi YSI6CisgICAgICBjb25zb2xlLmxvZyh4KTsKKyAgICAgIHJldHVybiAxOworICAgIGNhc2UgImIi OgorICAgICAgcmV0dXJuIDI7CisgICAgY2FzZSAiYyI6CisgICAgZGVmYXVsdDoKKyAgICAgIHJl dHVybiAwOworICB9Cit9OworPS09LT0KKwogQ29kZToKICAgKGxhbWJkYSAoKQogICAgIChzZXRx IGluZGVudC10YWJzLW1vZGUgbmlsKQotLSAKMi4zNC4xCgo= --00000000000044208f060b255897-- From unknown Sun Jun 22 07:53:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#67488: [PATCH] Fix typescript-ts-mode indentation for switch statements Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 28 Nov 2023 00:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 67488 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Noah Peart , 67488@debbugs.gnu.org Received: via spool by 67488-submit@debbugs.gnu.org id=B67488.170113196021763 (code B ref 67488); Tue, 28 Nov 2023 00:40:02 +0000 Received: (at 67488) by debbugs.gnu.org; 28 Nov 2023 00:39:20 +0000 Received: from localhost ([127.0.0.1]:45084 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7m8F-0005ex-L3 for submit@debbugs.gnu.org; Mon, 27 Nov 2023 19:39:19 -0500 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:44755) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7m8C-0005ej-TP for 67488@debbugs.gnu.org; Mon, 27 Nov 2023 19:39:18 -0500 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 062715C026D; Mon, 27 Nov 2023 19:39:05 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Mon, 27 Nov 2023 19:39:05 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1701131945; x=1701218345; bh=bT3EmxMwvk2gcXVI+kuyEObuOdkaHPbo1jh uzLPMypM=; b=asVviZ/RTN+3r1M/qbple2OXATSNofkvrn99K8goss/VxwFiw8h RqTlFTKsrHLqB1DCR/4v1II3KtpJ7gMDEYwWU/yeXeeyaMDB0meEi95PQqsXNQU0 btCDj9UU6cmZ6I6FYfv0SB/jPaQfQL4iIrzavUpbPLUjfyfKIcYI8bpADcULSt7N gQpgIIp3RY/JO3lWz2YEnC2R/XLinGHs/CANHslhG4G4dNR0+wf+bDw1t5HvChwt kmZ1Y+ZPWGLTzz8k8mAhEgGY9JOz6zZD4FnXtN6EOqz4dwnVFMv9YFZH/48nsxl4 +q+62sCCPNrnmLho/ClgSnwH345a4zfzteQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1701131945; x= 1701218345; bh=bT3EmxMwvk2gcXVI+kuyEObuOdkaHPbo1jhuzLPMypM=; b=w Z1K1t/cjqNyOsgqHAFrp/aXaECPx/g6YHLlxJ3yp+QOhuP+qLx4eEctdWjRvjzST O1XXt4mRlCuyVjNlaNcAx5HgBUZtniWnyAy1X6MKVW2jU7Y5/HTWP5C++miIobL4 34AlSNrLbvCmqImrYHbzZmMCf5ZY+UjQ2PX9TAK6c2NYCKO9wRYU8h9shi+wUH22 wTEz7HUowLOsRMnxZgSRO2+Fo0pb7lhVb4oNcZd085waiqL9qbnmzSis1cAnOtF1 4yRTr2YCICKdD4ELme56ttTALSJWlWyYFw1IPCrcBKpvW7WET+liWE0o8UcXK0YT TWmKYkW3zi0L1qqpBWxbw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudeivddgvdehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvfhfhjggtgfesthekredttdefjeenucfhrhhomhepffhmihht rhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtth gvrhhnpeefjeekvedvfeelfedufeevgeetvdevkeelvddtueetteefudefgfduieekffei leenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumh hithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 27 Nov 2023 19:39:03 -0500 (EST) Message-ID: <3420a38f-6ae7-fd20-28d8-e4815c8fa3cc@gutov.dev> Date: Tue, 28 Nov 2023 02:39:02 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Content-Language: en-US References: From: Dmitry Gutov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -2.9 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.9 (---) On 27/11/2023 19:07, Noah Peart wrote: > Tags: patch > > * lisp/progmodes/typescript-ts-mode.el(typescript-ts-mode): Add indentation > rule for switch case and default keywords. > > Bug: `typescript-ts-mode` is missing indentation rules for 'case' and > 'default' keywords in switch statements. > > Recipe to reproduce: > Copy the following code into a buffer: > >     const foo = (x: string) => { >       switch (x) { >                   case "a": >                   console.log(x); >                   return 1; >     case "b": >       return 2; >                   case "c": >                   default: >                     return 0; >       } >     }; > > And call the following function to configure typescript-ts-mode and > indent the buffer > >     (defun my-ts-indentation () >       (interactive) >       (setq indent-tabs-mode nil) >       (setq typescript-ts-mode-indent-offset 2) >       (typescript-ts-mode) >       (indent-region (point-min) (point-max))) > > The indentation for the 'case' and 'default' branches within the switch > statement should still be unchanged due to missing indent rules. > Bug applies to emacs 29 as well. Thanks! Can repro. The fix looks good as well. From unknown Sun Jun 22 07:53:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#67488: [PATCH] Fix typescript-ts-mode indentation for switch statements Resent-From: Yuan Fu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 28 Nov 2023 05:55:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 67488 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 67488@debbugs.gnu.org Cc: theo@thornhill.no X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.170115085632087 (code B ref -1); Tue, 28 Nov 2023 05:55:01 +0000 Received: (at submit) by debbugs.gnu.org; 28 Nov 2023 05:54:16 +0000 Received: from localhost ([127.0.0.1]:45335 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7r31-0008LR-SY for submit@debbugs.gnu.org; Tue, 28 Nov 2023 00:54:16 -0500 Received: from lists.gnu.org ([2001:470:142::17]:56480) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7r30-0008LD-09 for submit@debbugs.gnu.org; Tue, 28 Nov 2023 00:54:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r7r2j-0006IN-87 for bug-gnu-emacs@gnu.org; Tue, 28 Nov 2023 00:53:58 -0500 Received: from mail-oo1-xc34.google.com ([2607:f8b0:4864:20::c34]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1r7r2e-0007sO-Kg for bug-gnu-emacs@gnu.org; Tue, 28 Nov 2023 00:53:54 -0500 Received: by mail-oo1-xc34.google.com with SMTP id 006d021491bc7-58d956c8c38so731844eaf.2 for ; Mon, 27 Nov 2023 21:53:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701150831; x=1701755631; darn=gnu.org; h=content-transfer-encoding:in-reply-to:from:cc:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=53Ji56O5bfW33D6u42mCpSN89PS2ALStd/pbeyEuTdI=; b=k1nlNUNVr0syQ/HqmBexzzzLjQZGlwCPY5MBDIBXybSZxTvarv7H/ZytQNhXg24xoN 24FkEhNOjTyetejvWXMOwF3lJR3csrd7dmqREF4OcjRveArmA8snH/9S8RJH6RE7g4SQ 6fsi+ZAfdi2P2loaQFopioQ8hSogKG1ZNHIEJqDPK/dAZy1tZQXGA0/dkGI/3olAxT4N F1OLXV2gToN06PSOiltWEYpKDS4x2lMABYDnXhL74NuE5jQVPoxwnQfsLbDfWsUtBxhw gKxw/YCYKteg01El5sQSXtABXCd3fQVk/dzjj9Ro4o7JprEQMsK6+5Ar/aSH4rIeg1f0 M5mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701150831; x=1701755631; h=content-transfer-encoding:in-reply-to:from:cc:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=53Ji56O5bfW33D6u42mCpSN89PS2ALStd/pbeyEuTdI=; b=ZwVtxWH/4LK/jez3WldcNCTbwPOoLQRdM9eGRuIkSLnmzlGNaboY4Kibq92CZjECNx 9QBCtYJ+fo2HU1BP5UFMa1q9Kn7yxDcyE7U6GquCsnsETiMA/hSBaxxHDJMpMvrKldg1 dxBwYnFBb8EhYUc852dM/ujC3clYHR8VP6EqZza3BCvJa9IPZIC7vkmVcIs14+Z0+h7h T7z9XDc+NX9D81zXi0r1QfBl5BszZS/IWhtG2gKBBbKiZ3lyJK4qeYr96RgKtb+0gVJz Z4RljQ3otPRVQgR2V4ofC26iCLeYTmPZaNyFzcADsz6UB3E3O+FoqD8HlFI+cVxX28ZL jwNQ== X-Gm-Message-State: AOJu0YzGywCONiS/Jo5kLQXyXhfK6Yisfx+RRh4k1vMzpcq4jQv+gvhb lx4o6QH3I+6hYBynMInJ/K8x+gDNZjDlpQ== X-Google-Smtp-Source: AGHT+IGeiF5n4K1ft3kkjw4k2RVJtP3FK4sdQYiXRMz7/JX0F5Qswlsmrov8FfoAH9EyLGGJu2gG9A== X-Received: by 2002:a05:6358:52c6:b0:16b:c479:d6c1 with SMTP id z6-20020a05635852c600b0016bc479d6c1mr17042068rwz.9.1701150831071; Mon, 27 Nov 2023 21:53:51 -0800 (PST) Received: from [192.168.1.7] (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id a22-20020a63d216000000b005bdd8dcfe19sm8652474pgg.10.2023.11.27.21.53.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 27 Nov 2023 21:53:50 -0800 (PST) Message-ID: <249b56d1-1345-4b59-98c7-3f019564fa82@gmail.com> Date: Mon, 27 Nov 2023 21:53:49 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US References: <3420a38f-6ae7-fd20-28d8-e4815c8fa3cc@gutov.dev> From: Yuan Fu In-Reply-To: <3420a38f-6ae7-fd20-28d8-e4815c8fa3cc@gutov.dev> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2607:f8b0:4864:20::c34; envelope-from=casouri@gmail.com; helo=mail-oo1-xc34.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) On 11/27/23 4:39 PM, Dmitry Gutov wrote: > On 27/11/2023 19:07, Noah Peart wrote: >> Tags: patch >> >> * lisp/progmodes/typescript-ts-mode.el(typescript-ts-mode): Add >> indentation >> rule for switch case and default keywords. >> >> Bug: `typescript-ts-mode` is missing indentation rules for 'case' and >> 'default' keywords in switch statements. >> >> Recipe to reproduce: >> Copy the following code into a buffer: >> >>      const foo = (x: string) => { >>        switch (x) { >>                    case "a": >>                    console.log(x); >>                    return 1; >>      case "b": >>        return 2; >>                    case "c": >>                    default: >>                      return 0; >>        } >>      }; >> >> And call the following function to configure typescript-ts-mode and >> indent the buffer >> >>      (defun my-ts-indentation () >>        (interactive) >>        (setq indent-tabs-mode nil) >>        (setq typescript-ts-mode-indent-offset 2) >>        (typescript-ts-mode) >>        (indent-region (point-min) (point-max))) >> >> The indentation for the 'case' and 'default' branches within the switch >> statement should still be unchanged due to missing indent rules. >> Bug applies to emacs 29 as well. > > Thanks! Can repro. The fix looks good as well. > LGTM. The only thing I'll add is that you can probably use a single regular expression rather than using the "or" matcher. But that's largely personal preference. Yuan From unknown Sun Jun 22 07:53:16 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Noah Peart Subject: bug#67488: closed (Re: bug#67488: [PATCH] Fix typescript-ts-mode indentation for switch statements) Message-ID: References: <835y1k7hlx.fsf@gnu.org> X-Gnu-PR-Message: they-closed 67488 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: patch Reply-To: 67488@debbugs.gnu.org Date: Wed, 29 Nov 2023 14:36:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1701268562-10759-1" This is a multi-part message in MIME format... ------------=_1701268562-10759-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #67488: [PATCH] Fix typescript-ts-mode indentation for switch statements which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 67488@debbugs.gnu.org. --=20 67488: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D67488 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1701268562-10759-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 67488-done) by debbugs.gnu.org; 29 Nov 2023 14:35:48 +0000 Received: from localhost ([127.0.0.1]:49253 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r8LfH-0002n8-Ph for submit@debbugs.gnu.org; Wed, 29 Nov 2023 09:35:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49472) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r8LfF-0002mr-IP for 67488-done@debbugs.gnu.org; Wed, 29 Nov 2023 09:35:46 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r8Lf2-0003SV-1s; Wed, 29 Nov 2023 09:35:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=adeOdXUZsbvG+QUtb47a9PuIIh9rSzdpipgYTqIElYw=; b=Yv5XqxumwKDO PCzGFRVbXx8TQiGLJ6gqAIyhITDfL3FPQWMyfuWgryfXGRPES7r8P5vsL3c3hVqCdnbMvfJKkJBCR PEdKSXol9o0lsV8BKk67GzdsjQEX0o93KZC7FqhFzqAoTDFZ7TFUEEp7r1iVvdNvw1bZdzy3yfPpe rtSAmC34VffoMkrfSefaso1+irCzBwS+DuH92r09CkQ0+LK0LMcTO2RrJ/OF3uDMv+h8RB1OKsT3b 5tgyroWR5qy544hyTDM50OUU0G2X24gNZZeNwTVoEWLMxKgmof7mFPcO6BFv5uDWix5N61ydQBNYh DlIhyH/BwFAVDeOOiQIz3g==; Date: Wed, 29 Nov 2023 16:35:06 +0200 Message-Id: <835y1k7hlx.fsf@gnu.org> From: Eli Zaretskii To: Yuan Fu , Noah Peart In-Reply-To: <249b56d1-1345-4b59-98c7-3f019564fa82@gmail.com> (message from Yuan Fu on Mon, 27 Nov 2023 21:53:49 -0800) Subject: Re: bug#67488: [PATCH] Fix typescript-ts-mode indentation for switch statements References: <3420a38f-6ae7-fd20-28d8-e4815c8fa3cc@gutov.dev> <249b56d1-1345-4b59-98c7-3f019564fa82@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67488-done Cc: theo@thornhill.no, 67488-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: theo@thornhill.no > Date: Mon, 27 Nov 2023 21:53:49 -0800 > From: Yuan Fu > > > Thanks! Can repro. The fix looks good as well. > > > LGTM. The only thing I'll add is that you can probably use a single > regular expression rather than using the "or" matcher. But that's > largely personal preference. Thanks, installed on the emacs-29 branch and closing the bug. ------------=_1701268562-10759-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 27 Nov 2023 17:08:28 +0000 Received: from localhost ([127.0.0.1]:44665 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7f5v-0005hk-Av for submit@debbugs.gnu.org; Mon, 27 Nov 2023 12:08:27 -0500 Received: from lists.gnu.org ([2001:470:142::17]:32816) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7f5u-0005hK-07 for submit@debbugs.gnu.org; Mon, 27 Nov 2023 12:08:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r7f5h-0007Ld-LF for bug-gnu-emacs@gnu.org; Mon, 27 Nov 2023 12:08:13 -0500 Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1r7f5b-0004ZQ-LH for bug-gnu-emacs@gnu.org; Mon, 27 Nov 2023 12:08:13 -0500 Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-1efabc436e4so3007004fac.1 for ; Mon, 27 Nov 2023 09:08:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701104883; x=1701709683; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=EdC/TM4m8hiSO+g/4kgaQ8aDbdIx+f1KSzpYDiFfdOU=; b=P4WSVGlfTWhmeDuqy1AiV0lb2Ggt/fhDkMsKBeAMJG/mQ2fDQxDrDzTSsz2diAVAx/ CTPTWCASbpdBgOiqJ+7PE2jsKZDn7S4DwAB+aizn8DH/MDyaSVPhXZ9M7x8e2bA/WQU2 eVKKKDIZVv4Yinkef1L14xyeoEBoNeQcZd3oDi8AW4u5nYQIzY0h0Xr/8Yx2qGPwkCHH JTcT3F+Va/tGvO95YO+YgNavTmWoSmKmzxNkwE0qsPGbY2YZDIfz8aRtJr07nGUGIZPX xMv7NdvigGVSOVHfKN7XaaH8/P8HqkQrE9M+XO00qEgw5P+aR0uVpa6WEG4D+bjt57fQ EXqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701104883; x=1701709683; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=EdC/TM4m8hiSO+g/4kgaQ8aDbdIx+f1KSzpYDiFfdOU=; b=blEghT76oRthfgwO5bwCrwVydPbA/VF1Q1T8th3v6sxrr4q8/bDvjXCx+gT8kxyrgw byH52z+q0gxGkX5b6iGGajZaj/c0l4vH/eJ9w+VfwmFGNVO2WKWVOHkVWu70YeXXSlTl tMZG+gfIsRDp99yg+P6/Tg6EZJyAzJQPxnsG8NYygMpvdE2ECG9znZ54+KOTluAkjfTQ NEORVU45MTFNCEzJUTgvbYuQorf5iDlkn8J1AbFXNIo5OaSMoRiVLm7izEI8XJztUQiY RCczMFLWHjkuDl+1y2aWlXjl3TUUXjgSj6VZA5yOgmvMUImEckHDRYKySKyJp11CZ8ep cFKg== X-Gm-Message-State: AOJu0YxQVP7jbrS1hj4N/vDQkRnJKUDGw6n/mHTpu/Ff+11vpQ5QeiDm 2louts9/Fv8e7Y1IVKNDoVojz8LaLItTa3vPM50Dp1L1uxwh9bL5 X-Google-Smtp-Source: AGHT+IEpisNZZEyfrdRSMNWlLoZl9oXMOXTRqcwp6n6KwmVR+IIOYSqx/G+dCo/BFxU9PQzUC5HWovRoX1uTOg6xuqE= X-Received: by 2002:a05:6871:e499:b0:1fa:345e:5e14 with SMTP id pz25-20020a056871e49900b001fa345e5e14mr9498338oac.36.1701104882812; Mon, 27 Nov 2023 09:08:02 -0800 (PST) MIME-Version: 1.0 From: Noah Peart Date: Mon, 27 Nov 2023 09:07:51 -0800 Message-ID: Subject: [PATCH] Fix typescript-ts-mode indentation for switch statements To: bug-gnu-emacs@gnu.org Content-Type: multipart/mixed; boundary="00000000000044208f060b255897" Received-SPF: pass client-ip=2001:4860:4864:20::2c; envelope-from=noah.v.peart@gmail.com; helo=mail-oa1-x2c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --00000000000044208f060b255897 Content-Type: multipart/alternative; boundary="00000000000044208e060b255895" --00000000000044208e060b255895 Content-Type: text/plain; charset="UTF-8" Tags: patch * lisp/progmodes/typescript-ts-mode.el(typescript-ts-mode): Add indentation rule for switch case and default keywords. Bug: `typescript-ts-mode` is missing indentation rules for 'case' and 'default' keywords in switch statements. Recipe to reproduce: Copy the following code into a buffer: const foo = (x: string) => { switch (x) { case "a": console.log(x); return 1; case "b": return 2; case "c": default: return 0; } }; And call the following function to configure typescript-ts-mode and indent the buffer (defun my-ts-indentation () (interactive) (setq indent-tabs-mode nil) (setq typescript-ts-mode-indent-offset 2) (typescript-ts-mode) (indent-region (point-min) (point-max))) The indentation for the 'case' and 'default' branches within the switch statement should still be unchanged due to missing indent rules. Bug applies to emacs 29 as well. In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0) of 2023-11-27 built on noah-X580VD Repository revision: 76cf700ecb78cb465bcd05ae2b2fb0d28e4d0aed Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101004 System Description: Ubuntu 22.04.3 LTS Configured using: 'configure --prefix=/usr/local --with-modules --with-tree-sitter --with-threads --with-x-toolkit=gtk3 --with-xwidgets --with-gnutls --with-json --with-mailutils --with-jpeg --with-png --with-rsvg --with-tiff --with-xml2 --with-xpm --with-imagemagick CC=gcc-12 CXX=gcc-12' --00000000000044208e060b255895 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Tags: patch

* lisp/progmodes/typescript-ts-mode.el(= typescript-ts-mode): Add indentation
rule for switch case and default ke= ywords.

Bug: `typescript-ts-mode` is missing indentation rules for &= #39;case' and
'default' keywords in switch statements.
Recipe to reproduce:
Copy the following code into a buffer:

=C2= =A0 =C2=A0 const foo =3D (x: string) =3D> {
=C2=A0 =C2=A0 =C2=A0 swit= ch (x) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = case "a":
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 console.log(x);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 return 1;
=C2=A0 =C2=A0 case "b":
=C2=A0 = =C2=A0 =C2=A0 return 2;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 case "c":
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 default:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return 0;
=C2=A0 =C2=A0 =C2=A0 }
= =C2=A0 =C2=A0 };

And call the following function to configure typesc= ript-ts-mode and
indent the buffer

=C2=A0 =C2=A0 (defun my-ts-ind= entation ()
=C2=A0 =C2=A0 =C2=A0 (interactive)
=C2=A0 =C2=A0 =C2=A0 (= setq indent-tabs-mode nil)
=C2=A0 =C2=A0 =C2=A0 (setq typescript-ts-mode= -indent-offset 2)
=C2=A0 =C2=A0 =C2=A0 (typescript-ts-mode)
=C2=A0 = =C2=A0 =C2=A0 (indent-region (point-min) (point-max)))

The indentati= on for the 'case' and 'default' branches within the switch<= br>statement should still be unchanged due to missing indent rules.
Bug= applies to emacs 29 as well.


In GNU Emacs 30.0.50 (build 1, x86= _64-pc-linux-gnu, GTK+ Version
3.24.33, cairo version 1.16.0) of 2023-11= -27 built on noah-X580VD
Repository revision: 76cf700ecb78cb465bcd05ae2b= 2fb0d28e4d0aed
Repository branch: master
Windowing system distributor= 'The X.Org Foundation', version 11.0.12101004
System Descriptio= n: Ubuntu 22.04.3 LTS

Configured using:
=C2=A0'configure --pr= efix=3D/usr/local --with-modules --with-tree-sitter
--with-threads --wit= h-x-toolkit=3Dgtk3 --with-xwidgets --with-gnutls
--with-json --with-mail= utils --with-jpeg --with-png --with-rsvg
--with-tiff --with-xml2 --with-= xpm --with-imagemagick CC=3Dgcc-12
CXX=3Dgcc-12'
--00000000000044208e060b255895-- --00000000000044208f060b255897 Content-Type: text/x-patch; charset="US-ASCII"; name="typescript-ts-mode-switch-indentation.patch" Content-Disposition: attachment; filename="typescript-ts-mode-switch-indentation.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lph5votp0 RnJvbSA5N2NiYWUzOTU2MjIzM2E2ZWI5ZjIzOTNhZDY1NTZiODQwOWE3ZWFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBudmVybm8gPG5vYWgudi5wZWFydEBnbWFpbC5jb20+CkRhdGU6 IE1vbiwgMjcgTm92IDIwMjMgMDg6NTU6MjMgLTA4MDAKU3ViamVjdDogW1BBVENIXSBGaXggdHlw ZXNjcmlwdC10cy1tb2RlIGluZGVudGF0aW9uIGZvciBzd2l0Y2ggc3RhdGVtZW50cwoKKiBsaXNw L3Byb2dtb2Rlcy90eXBlc2NyaXB0LXRzLW1vZGUuZWwodHlwZXNjcmlwdC10cy1tb2RlKTogQWRk IGluZGVudGF0aW9uCnJ1bGUgZm9yIHN3aXRjaCBjYXNlIGFuZCBkZWZhdWx0IGtleXdvcmRzLgot LS0KIGxpc3AvcHJvZ21vZGVzL3R5cGVzY3JpcHQtdHMtbW9kZS5lbCAgICAgICAgICAgIHwgIDMg KysrCiAuLi4vdHlwZXNjcmlwdC10cy1tb2RlLXJlc291cmNlcy9pbmRlbnQuZXJ0cyAgICB8IDE3 ICsrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9saXNwL3Byb2dtb2Rlcy90eXBlc2NyaXB0LXRzLW1vZGUuZWwgYi9saXNwL3By b2dtb2Rlcy90eXBlc2NyaXB0LXRzLW1vZGUuZWwKaW5kZXggMDUwM2M3MjRkMzYuLjc5OThiMzc0 MGI2IDEwMDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy90eXBlc2NyaXB0LXRzLW1vZGUuZWwKKysr IGIvbGlzcC9wcm9nbW9kZXMvdHlwZXNjcmlwdC10cy1tb2RlLmVsCkBAIC0xMDcsNiArMTA3LDkg QEAgdHlwZXNjcmlwdC10cy1tb2RlLS1pbmRlbnQtcnVsZXMKICAgICAgKChwYXJlbnQtaXMgIm1l bWJlcl9leHByZXNzaW9uIikgcGFyZW50LWJvbCB0eXBlc2NyaXB0LXRzLW1vZGUtaW5kZW50LW9m ZnNldCkKICAgICAgKChwYXJlbnQtaXMgIm5hbWVkX2ltcG9ydHMiKSBwYXJlbnQtYm9sIHR5cGVz Y3JpcHQtdHMtbW9kZS1pbmRlbnQtb2Zmc2V0KQogICAgICAoKHBhcmVudC1pcyAic3RhdGVtZW50 X2Jsb2NrIikgcGFyZW50LWJvbCB0eXBlc2NyaXB0LXRzLW1vZGUtaW5kZW50LW9mZnNldCkKKyAg ICAgKChvciAobm9kZS1pcyAiY2FzZSIpCisgICAgICAgICAgKG5vZGUtaXMgImRlZmF1bHQiKSkK KyAgICAgIHBhcmVudC1ib2wgdHlwZXNjcmlwdC10cy1tb2RlLWluZGVudC1vZmZzZXQpCiAgICAg ICgocGFyZW50LWlzICJzd2l0Y2hfY2FzZSIpIHBhcmVudC1ib2wgdHlwZXNjcmlwdC10cy1tb2Rl LWluZGVudC1vZmZzZXQpCiAgICAgICgocGFyZW50LWlzICJzd2l0Y2hfZGVmYXVsdCIpIHBhcmVu dC1ib2wgdHlwZXNjcmlwdC10cy1tb2RlLWluZGVudC1vZmZzZXQpCiAgICAgICgocGFyZW50LWlz ICJ0eXBlX2FyZ3VtZW50cyIpIHBhcmVudC1ib2wgdHlwZXNjcmlwdC10cy1tb2RlLWluZGVudC1v ZmZzZXQpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3R5cGVzY3JpcHQtdHMtbW9k ZS1yZXNvdXJjZXMvaW5kZW50LmVydHMgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3R5cGVzY3JpcHQt dHMtbW9kZS1yZXNvdXJjZXMvaW5kZW50LmVydHMKaW5kZXggMjBmNDIzMjU5YjQuLjdiNjE4NWUw Mzg2IDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3R5cGVzY3JpcHQtdHMtbW9kZS1y ZXNvdXJjZXMvaW5kZW50LmVydHMKKysrIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy90eXBlc2NyaXB0 LXRzLW1vZGUtcmVzb3VyY2VzL2luZGVudC5lcnRzCkBAIC00NSw2ICs0NSwyMyBAQCBjb25zdCBm b28gPSAoKSA9PiB7CiB9OwogPS09LT0KIAorTmFtZTogU3dpdGNoIHN0YXRlbWVudAorCis9LT0K K2NvbnN0IGZvbyA9ICh4OiBzdHJpbmcpID0+IHsKKyAgc3dpdGNoICh4KSB7CisgICAgY2FzZSAi YSI6CisgICAgICBjb25zb2xlLmxvZyh4KTsKKyAgICAgIHJldHVybiAxOworICAgIGNhc2UgImIi OgorICAgICAgcmV0dXJuIDI7CisgICAgY2FzZSAiYyI6CisgICAgZGVmYXVsdDoKKyAgICAgIHJl dHVybiAwOworICB9Cit9OworPS09LT0KKwogQ29kZToKICAgKGxhbWJkYSAoKQogICAgIChzZXRx IGluZGVudC10YWJzLW1vZGUgbmlsKQotLSAKMi4zNC4xCgo= --00000000000044208f060b255897-- ------------=_1701268562-10759-1--