GNU bug report logs - #67758
[PATCH] Add indentation rules for bracketless statements in js-ts-mode

Previous Next

Package: emacs;

Reported by: Noah Peart <noah.v.peart <at> gmail.com>

Date: Sun, 10 Dec 2023 23:34:01 UTC

Severity: normal

Tags: patch

Fixed in version 29.2

Done: Dmitry Gutov <dmitry <at> gutov.dev>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 67758 in the body.
You can then email your comments to 67758 AT debbugs.gnu.org in the normal way.

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#67758; Package emacs. (Sun, 10 Dec 2023 23:34:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Noah Peart <noah.v.peart <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 10 Dec 2023 23:34:02 GMT) Full text and rfc822 format available.

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

From: Noah Peart <noah.v.peart <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: [PATCH] Add indentation rules for bracketless statements in js-ts-mode
Date: Sun, 10 Dec 2023 15:33:03 -0800
[Message part 1 (text/plain, inline)]
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'
[Message part 2 (text/html, inline)]
[js-ts-mode-statement-indent.patch (text/x-patch, attachment)]

Reply sent to Dmitry Gutov <dmitry <at> gutov.dev>:
You have taken responsibility. (Tue, 12 Dec 2023 01:16:01 GMT) Full text and rfc822 format available.

Notification sent to Noah Peart <noah.v.peart <at> gmail.com>:
bug acknowledged by developer. (Tue, 12 Dec 2023 01:16:01 GMT) Full text and rfc822 format available.

Message #10 received at 67758-done <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dmitry <at> gutov.dev>
To: Noah Peart <noah.v.peart <at> gmail.com>, 67758-done <at> debbugs.gnu.org
Subject: Re: bug#67758: [PATCH] Add indentation rules for bracketless
 statements in js-ts-mode
Date: Tue, 12 Dec 2023 03:14:59 +0200
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.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 09 Jan 2024 12:24:09 GMT) Full text and rfc822 format available.

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

Previous Next


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