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.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 32158 in the body.
You can then email your comments to 32158 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#32158; Package emacs. (Sat, 14 Jul 2018 16:11:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Valentin Ignatev <valentignatev <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 14 Jul 2018 16:11:02 GMT) Full text and rfc822 format available.

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

From: Valentin Ignatev <valentignatev <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 26.1;
 Broken JSX indentation in case of arrow function passing to props
Date: Sun, 15 Jul 2018 02:04:11 +1000
[Message part 1 (text/plain, inline)]
Start with emacs -Q, create new jsx file, paste following content:
const foo = (props) => (
    <div>
      <input
    cat={i => i} />
    </div>
);

Then put cursor after closing input part (/>) and hit <RET>. Cursor will
end rith below the "c" in "cat", but it expected to be below open
bracket "<". If I remove "{i => i}", then indentation behavior works in
an expected manner.

In GNU Emacs 26.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
 of 2018-07-05 built on juergen
Windowing system distributor 'The X.Org Foundation', version 11.0.12000000
Recent messages:
previous-line: Beginning of buffer [2 times]
Mark set
C-M-g is undefined
Mark set
Mark deactivated
Mark set
C-M-g is undefined
Quit
Mark set
Auto-saving...done

Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --with-x-toolkit=gtk3 --with-xft --with-modules
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong
 -fno-plt' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS
GTK3 X11 MODULES THREADS LIBSYSTEMD LCMS2

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LC_CTYPE: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: JSX

Minor modes in effect:
  diff-auto-refine-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml mml-sec password-cache epa derived epg epg-config
gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils apropos help-mode vc-git
diff-mode easy-mmode js advice sgml-mode dom json map seq byte-opt gv
bytecomp byte-compile cconv imenu thingatpt cc-mode cc-fonts easymenu
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
cl-loaddefs cl-lib elec-pair time-date mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 132251 10105)
 (symbols 48 24051 1)
 (miscs 40 109 176)
 (strings 32 40149 1453)
 (string-bytes 1 1170542)
 (vectors 16 19446)
 (vector-slots 8 548042 8566)
 (floats 8 56 381)
 (intervals 56 576 0)
 (buffers 992 14))
[Message part 2 (text/html, inline)]

Forcibly Merged 24896 26001 30225 32158. Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Sat, 14 Jul 2018 16:20:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#32158; Package emacs. (Wed, 05 Jun 2019 03:20:01 GMT) Full text and rfc822 format available.

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

From: Jackson Ray Hamilton <jackson <at> jacksonrayhamilton.com>
To: 32158 <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: Tue, 4 Jun 2019 20:19:10 -0700
Hi Valentin,

A set of changes I pushed to the Emacs master branch 2 months ago should 
resolve this issue.  (First fixed in 1a1ef28518, but there were several 
commits after that when I broke/fixed it again.  The master branch is 
your best bet.)

Jackson





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#32158; Package emacs. (Wed, 05 Jun 2019 10:59:01 GMT) Full text and rfc822 format available.

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

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Jackson Ray Hamilton <jackson <at> jacksonrayhamilton.com>,
 32158 <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 13:58:09 +0300
On 05.06.2019 6:19, Jackson Ray Hamilton wrote:
> A set of changes I pushed to the Emacs master branch 2 months ago should 
> resolve this issue.  (First fixed in 1a1ef28518, but there were several 
> commits after that when I broke/fixed it again.  The master branch is 
> your best bet.)

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.




Reply sent to Dmitry Gutov <dgutov <at> yandex.ru>:
You have taken responsibility. (Wed, 05 Jun 2019 11:01:02 GMT) Full text and rfc822 format available.

Notification sent to Valentin Ignatev <valentignatev <at> gmail.com>:
bug acknowledged by developer. (Wed, 05 Jun 2019 11:01:02 GMT) Full text and rfc822 format available.

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

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.




Reply sent to Dmitry Gutov <dgutov <at> yandex.ru>:
You have taken responsibility. (Wed, 05 Jun 2019 11:01:02 GMT) Full text and rfc822 format available.

Notification sent to Felipe Ochoa <felipe.nospam.ochoa <at> gmail.com>:
bug acknowledged by developer. (Wed, 05 Jun 2019 11:01:02 GMT) Full text and rfc822 format available.

Reply sent to Dmitry Gutov <dgutov <at> yandex.ru>:
You have taken responsibility. (Wed, 05 Jun 2019 11:01:02 GMT) Full text and rfc822 format available.

Notification sent to Dražen <kermit666 <at> gmail.com>:
bug acknowledged by developer. (Wed, 05 Jun 2019 11:01:03 GMT) Full text and rfc822 format available.

Reply sent to Dmitry Gutov <dgutov <at> yandex.ru>:
You have taken responsibility. (Wed, 05 Jun 2019 11:01:03 GMT) Full text and rfc822 format available.

Notification sent to Mitchel Humpherys <mitch.special <at> gmail.com>:
bug acknowledged by developer. (Wed, 05 Jun 2019 11:01:03 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 04 Jul 2019 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 270 days ago.

Previous Next


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