GNU bug report logs - #32158
26.1; Broken JSX indentation in case of arrow function passing to props

Previous Next

Package: emacs;

Reported by: Valentin Ignatev <valentignatev <at> gmail.com>

Date: Sat, 14 Jul 2018 16:11:02 UTC

Severity: minor

Merged with 24896, 26001, 30225

Found in versions 26.1, 27.0.50

Done: Dmitry Gutov <dgutov <at> yandex.ru>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#26001: closed (js-mode: JSX indentation after fat-arrow
 attribute)
Date: Wed, 05 Jun 2019 11:01:03 +0000
[Message part 1 (text/plain, inline)]
Your message dated Wed, 5 Jun 2019 14:00:16 +0300
with message-id <d908dc2f-ce04-065b-82e7-b865233e5d52 <at> yandex.ru>
and subject line Re: bug#32158: 26.1; Broken JSX indentation in case of arrow function passing to props
has caused the debbugs.gnu.org bug report #32158,
regarding js-mode: JSX indentation after fat-arrow attribute
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
32158: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=32158
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Dražen <kermit666 <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: js-mode: JSX indentation after fat-arrow attribute
Date: Mon, 06 Mar 2017 14:40:56 +0000
[Message part 3 (text/plain, inline)]
As mentioned in
https://github.com/mooz/js2-mode/issues/389#issuecomment-271869380 , there
seems to be a bug in the way js-mode (at least the folks there pointed me
at js-mode) indents JSX JavaScript.

When I'm doing a map with JSX syntax I'm getting:

render() {
    const messages = this.state.messages.map(
        message => <Message key={message.id}
        text={message.text}
        mine={message.mine} />
    );    return messages;
}

I'd ideally expect something like:

render() {
    const messages = this.state.messages.map(
        message => <Message key={message.id}
                            text={message.text}
                            mine={message.mine} />
    );    return messages;
}

It's even odder when I try to leave the argument to the arrow function in
the line above:

render() {
    const messages = this.state.messages.map(message =>
                                             <Message key={message.timestamp}
                                             text={message.text}
                                             mine={message.mine} />
                                            );    return messages;
}

For this second case, I'd hope to get:

render() {
    const messages = this.state.messages.map(message =>
        <Message key={message.timestamp}
                 text={message.text}
                 mine={message.mine} />
    );    return messages;
}

(I get such results if I wrap the return expression in parentheses)
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Jackson Ray Hamilton <jackson <at> jacksonrayhamilton.com>,
 32158-done <at> debbugs.gnu.org
Cc: valentignatev <at> gmail.com
Subject: Re: bug#32158: 26.1; Broken JSX indentation in case of arrow function
 passing to props
Date: Wed, 5 Jun 2019 14:00:16 +0300
On 05.06.2019 13:58, Dmitry Gutov wrote:

> Jackson, here's a slight variation on this example that looks problematic:
> 
> const foo = (props) => (
>      <div>
>      <input
>    cat={i => i} />
> 
>    </div>
> );
> 
> (Note the empty line)
> 
> That seems incorrect to me.

Sorry, never mind. I had to enable js-jsx-mode to test it properly.

So, closing.

Note that you can do it yourself by appending -done to a bug email.


This bug report was last modified 5 years and 348 days ago.

Previous Next


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