GNU bug report logs - #76704
30.1; Indentation of braces on separate line in js-ts-mode

Previous Next

Package: emacs;

Reported by: Fabian Brosda <f.brosda <at> gmx.de>

Date: Mon, 3 Mar 2025 04:33:03 UTC

Severity: minor

Found in version 30.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: juri <at> linkov.net, v.pupillo <at> gmail.com
Cc: f.brosda <at> gmx.de, 76704 <at> debbugs.gnu.org
Subject: bug#76704: 30.1; Indentation of braces on separate line in js-ts-mode
Date: Sat, 22 Mar 2025 14:24:16 +0200
Ping!  Juri and Vincenzo, please chime in.

> Cc: 76704 <at> debbugs.gnu.org
> Date: Sun, 09 Mar 2025 12:00:16 +0200
> From: Eli Zaretskii <eliz <at> gnu.org>
> 
> > Date: Sun, 02 Mar 2025 20:44:39 +0100
> > From:  Fabian Brosda via "Bug reports for GNU Emacs,
> >  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> > 
> > Hi,
> > 
> > when using js-ts-mode instead of js-mode, braces, which are put on a
> > separate line are indented one level too much.  Here is a simple example
> > of how the indentation looks like, after using indent-region on the
> > whole function:
> > 
> > ```
> > function test(x)
> >     {
> > 	    if(x)
> > 	        {
> > 		        return a;
> > 	        }
> > 	    else
> > 	        {
> > 		        return b;
> > 	        }
> >     }
> > 
> > ```
> > 
> > The used tree-sitter grammar is downloaded from
> > https://github.com/tree-sitter/tree-sitter-javascript.
> > 
> > Having braces on a separate line is probably not the most common for
> > javascript, but using indent-region in the js-mode, does yield the
> > expected result.  The js.el file does already contain a comment
> > mentioning braces in js--treesit-indent-rules.  But even based on the
> > git history it is not clear to me, what exactly is meant:
> > 
> > ```
> >        ;; "{" on the newline.
> >        ((node-is "statement_block") parent-bol js-indent-level)
> > ```
> > 
> > Link: https://github.com/emacs-mirror/emacs/blob/master/lisp/progmodes/js.el#L3457
> > 
> > If I replace 'js-indent-level' with '0' in this line, the indentation would
> > be correct, but this might have unwanted side-effects I overlooked.
> > 
> > My current emacs version:
> > 
> > GNU Emacs 30.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.48,
> > cairo version 1.18.2)
> > 
> > Thanks for looking into this.
> 
> Juri and Vincenzo, any comments?
> 
> 
> 
> 




This bug report was last modified 90 days ago.

Previous Next


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