From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 10 18:33:54 2023 Received: (at submit) by debbugs.gnu.org; 10 Dec 2023 23:33:54 +0000 Received: from localhost ([127.0.0.1]:52076 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCTJ3-0001AU-JN for submit@debbugs.gnu.org; Sun, 10 Dec 2023 18:33:54 -0500 Received: from lists.gnu.org ([2001:470:142::17]:46412) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCTIy-0001AA-82 for submit@debbugs.gnu.org; Sun, 10 Dec 2023 18:33:52 -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 1rCTIV-000507-GB for bug-gnu-emacs@gnu.org; Sun, 10 Dec 2023 18:33:24 -0500 Received: from mail-ot1-x334.google.com ([2607:f8b0:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rCTIS-0001tI-EU for bug-gnu-emacs@gnu.org; Sun, 10 Dec 2023 18:33:18 -0500 Received: by mail-ot1-x334.google.com with SMTP id 46e09a7af769-6d9f9fbfd11so1149103a34.2 for ; Sun, 10 Dec 2023 15:33:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702251195; x=1702855995; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=vQDaIR6OK6d4QzvE60c+Um5YHgoHCEcjTJkJPrUNKgk=; b=kfqJ7oU4RFkZQj/iPnYvW8Q3TxKm/RU19IHPINkxD3Gv0Z7i/bCEc7CrosyJp9JVQG hRslhfevVj2HbOgI5BjA0ZXP9QSUnZw73vF6a5KEmNoK7xeZCruZ7ciGh2RzuZfIG7oB w0Cblv7YY8hZTC+T1OLC759V2wLln7Nx7pIAHiKEdlFTM01L1eUs5/7MgaaHJN8HZPaD q+EsF4yLA95l8jv5eVAcXBVXajYwdGKwpL13FJVbbmXUqpcJE3IVvhqwubM0imHezMrU D+FTrSVM07d62yoSupg3Xx723Z0tj6GcndMelCmqU4YemwaQsz8J5pDZsYQXmsFzpUyY AA6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702251195; x=1702855995; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=vQDaIR6OK6d4QzvE60c+Um5YHgoHCEcjTJkJPrUNKgk=; b=eDZmX4floE+79Bc34yuCCwfvE4ZEW1NJ1eeSj1X9f/tYvkkLrUBSQ6aSgFV7sYtDjq K8hrt2r0hdJ5enQsJ/t5cITWtAKDNdnxcAAhx/w9QJxJGQGACXXGDA2GTrnGXEAXojq1 WQQBZR0D+s990wf4x1mB3NayGAYR6nAGbFBF97HCqQzTw+lucAJ/91CZSX8tETgOyNl4 iOmcCuJOtaTGh+e0kYWy+Gi0SwbOyU35A3MTCuu/BgDvsS/dnb56mx8YqUJBqqBiQiR3 /9ztbPIhjn15vYyWldwqbN8iBFAUeCaYAf+9l2PzcvRoKG1iRyzy9vDB7qOhx2nYfR85 BhEg== X-Gm-Message-State: AOJu0YwvCEYkl8iZIaNc51SRANmZ99oEGQVYJR6ykKXQEWRHQ/CCvqif nLZV8bMjoEEuqEdfQYGpTcAJkZNpIl5nGK4jegjJpwBjC4vYnQ== X-Google-Smtp-Source: AGHT+IFTj4AUZA2jVp3oRyzYzcZ8Cmk1nE5QE4+YkZVHKeIJbaPJT3XogU8wvDF/iM5B++1fJrx+vl7sPpEj+dO7NDg= X-Received: by 2002:a05:6870:7e84:b0:1fb:19a:5ce with SMTP id wy4-20020a0568707e8400b001fb019a05cemr2820375oab.37.1702251194509; Sun, 10 Dec 2023 15:33:14 -0800 (PST) MIME-Version: 1.0 From: Noah Peart Date: Sun, 10 Dec 2023 15:33:03 -0800 Message-ID: Subject: [PATCH] Add indentation rules for bracketless statements in js-ts-mode To: bug-gnu-emacs@gnu.org Content-Type: multipart/mixed; boundary="000000000000c4c656060c303d1e" Received-SPF: pass client-ip=2607:f8b0:4864:20::334; envelope-from=noah.v.peart@gmail.com; helo=mail-ot1-x334.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 (/) --000000000000c4c656060c303d1e Content-Type: multipart/alternative; boundary="000000000000c4c655060c303d1c" --000000000000c4c655060c303d1c Content-Type: text/plain; charset="UTF-8" Tags: patch * Bug: `js-ts-mode` is missing indentation rules for bracketless statements. These missing rules are the same as those that were previously missing from typescript-ts-mode (bug#67031). Recipe to reproduce: Using the following function to configure js-ts-mode and indent the buffer: (defun try-indent () (interactive) (setq-local indent-tabs-mode nil) (setq-local js-indent-level 2) (js-ts-mode) (indent-region (point-min) (point-max))) Add the following example to a buffer and call `try-indent`. function bracketless_statements(x) { if (x == 0) console.log("if_statement"); else if (x == 1) console.log("if_statement"); else console.log("else_clause"); for (let i = 0; i < 1; i++) console.log("for_statement"); for (let _ of [true]) console.log("for_in_statement"); while (x-- > 0) console.log("while_statement"); do console.log("do_statement"); while (false) }; Afterwards, you should see none of the statement bodies were indented. 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-12-10 built on noah-X580VD Repository revision: 0da2a4650cdac008ac9a50ec8a7729093632a6a8 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' --000000000000c4c655060c303d1c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Tags: patch


* Bug: `js-ts-mode` is missing inde= ntation rules for bracketless
statements.

These missing rules are= the same as those that were previously missing
from typescript-ts-mode = (bug#67031).

Recipe to reproduce:

Using the following functio= n to configure js-ts-mode and indent the
buffer:

=C2=A0 =C2=A0 (d= efun try-indent ()
=C2=A0 =C2=A0 =C2=A0 (interactive)
=C2=A0 =C2=A0 = =C2=A0 (setq-local indent-tabs-mode nil)
=C2=A0 =C2=A0 =C2=A0 (setq-loca= l js-indent-level 2)
=C2=A0 =C2=A0 =C2=A0 (js-ts-mode)
=C2=A0 =C2=A0 = =C2=A0 (indent-region (point-min) (point-max)))

Add the following ex= ample to a buffer and call `try-indent`.

=C2=A0 =C2=A0 function brac= ketless_statements(x) {
=C2=A0 =C2=A0 if (x =3D=3D 0)
=C2=A0 =C2=A0 c= onsole.log("if_statement");
=C2=A0 =C2=A0 else if (x =3D=3D 1)=
=C2=A0 =C2=A0 console.log("if_statement");
=C2=A0 =C2=A0 e= lse
=C2=A0 =C2=A0 console.log("else_clause");
=C2=A0 =C2=A0= for (let i =3D 0; i < 1; i++)
=C2=A0 =C2=A0 console.log("for_st= atement");
=C2=A0 =C2=A0 for (let _ of [true])
=C2=A0 =C2=A0 con= sole.log("for_in_statement");
=C2=A0 =C2=A0 while (x-- > 0)=
=C2=A0 =C2=A0 console.log("while_statement");
=C2=A0 =C2= =A0 do
=C2=A0 =C2=A0 console.log("do_statement");
=C2=A0 = =C2=A0 while (false)
=C2=A0 =C2=A0 };

Afterwards, you should see = none of the statement bodies were indented.


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-12-10 built on noah-X580VD
Repository revision: 0da2a4650cda= c008ac9a50ec8a7729093632a6a8
Repository branch: master
Windowing syst= em distributor 'The X.Org Foundation', version 11.0.12101004
Sys= tem Description: Ubuntu 22.04.3 LTS

Configured using:
=C2=A0'= configure --prefix=3D/usr/local --with-modules --with-tree-sitter
--with= -threads --with-x-toolkit=3Dgtk3 --with-xwidgets --with-gnutls
--with-js= on --with-mailutils --with-jpeg --with-png --with-rsvg
--with-tiff --wit= h-xml2 --with-xpm --with-imagemagick CC=3Dgcc-12
CXX=3Dgcc-12'
--000000000000c4c655060c303d1c-- --000000000000c4c656060c303d1e Content-Type: text/x-patch; charset="US-ASCII"; name="js-ts-mode-statement-indent.patch" Content-Disposition: attachment; filename="js-ts-mode-statement-indent.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lq04dbs20 RnJvbSAyZmFhZmY3NzI2NzdjNDQxODBkZjY0YjgyYTEyYjcyZmJkMGM1N2NiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIFBlYXJ0IDxub2FoLnYucGVhcnRAZ21haWwuY29tPgpE YXRlOiBTdW4sIDEwIERlYyAyMDIzIDE0OjU4OjMxIC0wODAwClN1YmplY3Q6IEFkZCBpbmRlbnRh dGlvbiBydWxlcyBmb3IgYnJhY2tldGxlc3Mgc3RhdGVtZW50cyBpbiBqcy10cy1tb2RlCgoqIGxp c3AvcHJvZ21vZGVzL2pzLmVsIChqcy0tdHJlZXNpdC1pbmRlbnQtcnVsZXMpOiBBZGQgaW5kZW50 YXRpb24KcnVsZXMgdG8gaGFuZGxlIGJyYWNrZXRsZXNzIHN0YXRlbWVudHMuCiogdGVzdC9saXNw L3Byb2dtb2Rlcy9qcy10ZXN0cy5lbCAoanMtdHMtbW9kZS10ZXN0LWluZGVudGF0aW9uKToKTmV3 IHRlc3QgZm9yIGpzLXRzLW1vZGUgaW5kZW50YXRpb24uCiogdGVzdC9saXNwL3Byb2dtb2Rlcy9q cy1yZXNvdXJjZXMvanMtdHMtaW5kZW50cy5lcnRzOiBOZXcgZmlsZQp3aXRoIGluZGVudGF0aW9u IHRlc3RzIGZvciBqcy10cy1tb2RlLgotLS0KIGxpc3AvcHJvZ21vZGVzL2pzLmVsICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICA1ICsrKwogLi4uL3Byb2dtb2Rlcy9qcy1yZXNvdXJjZXMvanMt dHMtaW5kZW50cy5lcnRzIHwgNDQgKysrKysrKysrKysrKysrKysrKwogdGVzdC9saXNwL3Byb2dt b2Rlcy9qcy10ZXN0cy5lbCAgICAgICAgICAgICAgIHwgIDYgKysrCiAzIGZpbGVzIGNoYW5nZWQs IDU1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvcHJvZ21vZGVz L2pzLXJlc291cmNlcy9qcy10cy1pbmRlbnRzLmVydHMKCmRpZmYgLS1naXQgYS9saXNwL3Byb2dt b2Rlcy9qcy5lbCBiL2xpc3AvcHJvZ21vZGVzL2pzLmVsCmluZGV4IDQ0ZWRhMDNmN2NlLi5jZjY0 MDFkOWUzOCAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvanMuZWwKKysrIGIvbGlzcC9wcm9n bW9kZXMvanMuZWwKQEAgLTM0NjMsNiArMzQ2MywxMSBAQCBqcy0tdHJlZXNpdC1pbmRlbnQtcnVs ZXMKICAgICAgICAoKHBhcmVudC1pcyAiY2xhc3NfYm9keSIpIHBhcmVudC1ib2wganMtaW5kZW50 LWxldmVsKQogICAgICAgICgocGFyZW50LWlzICxzd2l0Y2gtY2FzZSkgcGFyZW50LWJvbCBqcy1p bmRlbnQtbGV2ZWwpCiAgICAgICAgKChwYXJlbnQtaXMgInN0YXRlbWVudF9ibG9jayIpIHBhcmVu dC1ib2wganMtaW5kZW50LWxldmVsKQorICAgICAgICgobWF0Y2ggIndoaWxlIiAiZG9fc3RhdGVt ZW50IikgcGFyZW50LWJvbCAwKQorICAgICAgICgobWF0Y2ggImVsc2UiICJpZl9zdGF0ZW1lbnQi KSBwYXJlbnQtYm9sIDApCisgICAgICAgKChwYXJlbnQtaXMgLChyeCAob3IgKHNlcSAob3IgImlm IiAiZm9yIiAiZm9yX2luIiAid2hpbGUiICJkbyIpICJfc3RhdGVtZW50IikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiZWxzZV9jbGF1c2UiKSkpCisgICAgICAgIHBhcmVudC1ib2wganMt aW5kZW50LWxldmVsKQogCiAgICAgICAgOzsgSlNYCiAgICAgICAgLEAoanMtanN4LS10cmVlc2l0 LWluZGVudC1jb21wYXRpYmlsaXR5LWJiMWY5N2IpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvcHJv Z21vZGVzL2pzLXJlc291cmNlcy9qcy10cy1pbmRlbnRzLmVydHMgYi90ZXN0L2xpc3AvcHJvZ21v ZGVzL2pzLXJlc291cmNlcy9qcy10cy1pbmRlbnRzLmVydHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjJlMzRiMjNhY2VmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9s aXNwL3Byb2dtb2Rlcy9qcy1yZXNvdXJjZXMvanMtdHMtaW5kZW50cy5lcnRzCkBAIC0wLDAgKzEs NDQgQEAKK0NvZGU6CisgIChsYW1iZGEgKCkKKyAgICAoc2V0cSBpbmRlbnQtdGFicy1tb2RlIG5p bCkKKyAgICAoc2V0cSBqcy1pbmRlbnQtbGV2ZWwgMikKKyAgICAoanMtdHMtbW9kZSkKKyAgICAo aW5kZW50LXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpCisKK05hbWU6IEJhc2ljIGlu ZGVudGF0aW9uCisKKz0tPQorY29uc3QgZm9vID0gKCkgPT4geworICBjb25zb2xlLmxvZygiYmFy Iik7CisgIGlmICh4KSB7CisgICAgcmV0dXJuIHk7CisgIH0gZWxzZSBpZiAoeSkgeworICAgIHJl dHVybiB1OworICB9CisgIHJldHVybiBiYXoueCgpCisgICAgPyB0cnVlCisgICAgOiBmYWxzZTsK K30KKz0tPS09CisKK05hbWU6IFN0YXRlbWVudCBpbmRlbnRhdGlvbiB3aXRob3V0IGJyYWNlcwor Cis9LT0KK2Z1bmN0aW9uIGJyYWNrZXRsZXNzX3N0YXRlbWVudHMoeCkgeworICBpZiAoeCA9PSAw KQorICAgIGNvbnNvbGUubG9nKCJpZl9zdGF0ZW1lbnQiKTsKKyAgZWxzZSBpZiAoeCA9PSAxKQor ICAgIGNvbnNvbGUubG9nKCJpZl9zdGF0ZW1lbnQiKTsKKyAgZWxzZQorICAgIGNvbnNvbGUubG9n KCJlbHNlX2NsYXVzZSIpOworICBmb3IgKGxldCBpID0gMDsgaSA8IDE7IGkrKykKKyAgICBjb25z b2xlLmxvZygiZm9yX3N0YXRlbWVudCIpOworICBmb3IgKGxldCBfIG9mIFt0cnVlXSkKKyAgICBj b25zb2xlLmxvZygiZm9yX2luX3N0YXRlbWVudCIpOworICB3aGlsZSAoeC0tID4gMCkKKyAgICBj b25zb2xlLmxvZygid2hpbGVfc3RhdGVtZW50Iik7CisgIGRvCisgICAgY29uc29sZS5sb2coImRv X3N0YXRlbWVudCIpOworICB3aGlsZSAoZmFsc2UpCit9OworPS09LT0KZGlmZiAtLWdpdCBhL3Rl c3QvbGlzcC9wcm9nbW9kZXMvanMtdGVzdHMuZWwgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL2pzLXRl c3RzLmVsCmluZGV4IDVkYjkyYjA4ZjhhLi44MjdkN2JiOGE5OSAxMDA2NDQKLS0tIGEvdGVzdC9s aXNwL3Byb2dtb2Rlcy9qcy10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL2pzLXRl c3RzLmVsCkBAIC0yODgsNiArMjg4LDEyIEBAIGpzLW1vZGUtZW5kLW9mLWRlZnVuCiAgICAgOzsg ZW5kLW9mLWRlZnVuIHNob3VsZCBtb3ZlIHBvaW50IHRvIGVvYi4KICAgICAoc2hvdWxkIChlb2Jw KSkpKQogCis7Ozs7IFRyZWUtc2l0dGVyIHRlc3RzLgorCisoZXJ0LWRlZnRlc3QganMtdHMtbW9k ZS10ZXN0LWluZGVudGF0aW9uICgpCisgIChza2lwLXVubGVzcyAodHJlZXNpdC1yZWFkeS1wICdq YXZhc2NyaXB0KSkKKyAgKGVydC10ZXN0LWVydHMtZmlsZSAoZXJ0LXJlc291cmNlLWZpbGUgImpz LXRzLWluZGVudHMuZXJ0cyIpKSkKKwogKHByb3ZpZGUgJ2pzLXRlc3RzKQogCiA7OzsganMtdGVz dHMuZWwgZW5kcyBoZXJlCi0tIAoyLjM0LjEKCg== --000000000000c4c656060c303d1e-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 11 20:15:28 2023 Received: (at 67758-done) by debbugs.gnu.org; 12 Dec 2023 01:15:28 +0000 Received: from localhost ([127.0.0.1]:55039 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCrMu-0003Xb-EL for submit@debbugs.gnu.org; Mon, 11 Dec 2023 20:15:28 -0500 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:45177) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCrMq-0003XH-Ae for 67758-done@debbugs.gnu.org; Mon, 11 Dec 2023 20:15:27 -0500 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id E1CF63200C76; Mon, 11 Dec 2023 20:15:02 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Mon, 11 Dec 2023 20:15:03 -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:subject:subject:to:to; s=fm3; t=1702343702; x=1702430102; bh=vFLbskBPApm/KmyVq82CgYJysJXKnAAMORNJW/osamI=; b= nV7ruIpjHEFUevHK6o6WsMsG3DdtyXnQJDaHu4kc77iGUQ2iQZJMMWewCIxsAT8T FW2k2CNjFd+qJhG4BmOkIHtG/i1X10n7Y5yP3fKBzPLICm/OPGISYnLO2Xax0h41 VHBQpPhJVwLmF70ux0uzfAwZ1im0SQCij30IQaAneLNEJ/g1t/6d+H5kyiekGcL7 fxV+UVV9Lk7ULUnhAf8Xd5B5cByddyZ6bGAMhUyBC4dpIHuSzkU4LfUMRJZyyi5d A64gGMol4KirwRN29D5OKGM/Qd+4U8YN1tjDVJcrzdGs2F7mopUEjpUl7Ye2pfJw Ry5zP1zno13MXvNUmyqykQ== 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:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1702343702; x= 1702430102; bh=vFLbskBPApm/KmyVq82CgYJysJXKnAAMORNJW/osamI=; b=X IXdfnrTRWe9r6LCOjxlfhNA/3QFSyuLkJvO28KyGl6+HDktKI1y0iUbEjt1Ipa+q ozk8QgodUpov8IwADzL/m4i3tf6pExDZc+mdJZAOB9xY+fSu8PBtgYDSpp+wvz3S a/5FLEMD5pdtQNMrlVYWo+jQXYCKqUeIpsFQeNfhZ4+erBJzZ9y6KdVVISpOW1HD T6Nq4zkOg3DvrxSux+wONZb7d/uNwb8SAUscOvUSvGByOGId9qt+leo0PReBXtyo yJ9+9TsaoS+2WvzAAWeW8BZ+4kVAEKKRMdsyhTgSuRg6e4oWFFaI2CBvRV42Y4Ca 1k7m6uJrbJPXMKx53mzbg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudelfedgfeefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvfhfhjggtgfesthekredttdefjeenucfhrhhomhepffhmihht rhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtth gvrhhnpeefjeekvedvfeelfedufeevgeetvdevkeelvddtueetteefudefgfduieekffei leenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumh hithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 11 Dec 2023 20:15:01 -0500 (EST) Message-ID: Date: Tue, 12 Dec 2023 03:14:59 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#67758: [PATCH] Add indentation rules for bracketless statements in js-ts-mode Content-Language: en-US To: Noah Peart , 67758-done@debbugs.gnu.org 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-Debbugs-Envelope-To: 67758-done 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 (---) Version: 29.2 On 11/12/2023 01:33, Noah Peart wrote: > Tags: patch > > > * Bug: `js-ts-mode` is missing indentation rules for bracketless > statements. > > These missing rules are the same as those that were previously missing > from typescript-ts-mode (bug#67031). > > Recipe to reproduce: > > Using the following function to configure js-ts-mode and indent the > buffer: > >     (defun try-indent () >       (interactive) >       (setq-local indent-tabs-mode nil) >       (setq-local js-indent-level 2) >       (js-ts-mode) >       (indent-region (point-min) (point-max))) > > Add the following example to a buffer and call `try-indent`. > >     function bracketless_statements(x) { >     if (x == 0) >     console.log("if_statement"); >     else if (x == 1) >     console.log("if_statement"); >     else >     console.log("else_clause"); >     for (let i = 0; i < 1; i++) >     console.log("for_statement"); >     for (let _ of [true]) >     console.log("for_in_statement"); >     while (x-- > 0) >     console.log("while_statement"); >     do >     console.log("do_statement"); >     while (false) >     }; > > Afterwards, you should see none of the statement bodies were indented. Thanks! Installed. From unknown Tue Sep 09 18:21:47 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 09 Jan 2024 12:24:09 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator