* Re: [Emacs-diffs] master 6354e3c: Handle indentation of nested ternary operators in JS [not found] ` <20170413005146.2054022EE8@vcs0.savannah.gnu.org> @ 2017-04-13 19:24 ` Stefan Monnier 2017-04-13 21:36 ` Davis Herring 2017-04-13 22:01 ` Dmitry Gutov 0 siblings, 2 replies; 3+ messages in thread From: Stefan Monnier @ 2017-04-13 19:24 UTC (permalink / raw) To: emacs-devel; +Cc: Dmitry Gutov > + isSet > + ? (isEmpty ? 2 : 3) > + : 4 Not sure about JS, but at least in C, those parentheses are not needed (so the indentation code should ideally DTRT even in the absence of parentheses). Stefan ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Emacs-diffs] master 6354e3c: Handle indentation of nested ternary operators in JS 2017-04-13 19:24 ` [Emacs-diffs] master 6354e3c: Handle indentation of nested ternary operators in JS Stefan Monnier @ 2017-04-13 21:36 ` Davis Herring 2017-04-13 22:01 ` Dmitry Gutov 1 sibling, 0 replies; 3+ messages in thread From: Davis Herring @ 2017-04-13 21:36 UTC (permalink / raw) To: Stefan Monnier; +Cc: Dmitry Gutov, emacs-devel >> + isSet >> + ? (isEmpty ? 2 : 3) >> + : 4 > > Not sure about JS, but at least in C, those parentheses are not needed JavaScript and C have the same ?: parsing. Moreover, I think even PHP would get that one right without parentheses, because grouping the first ? and : and the second ? and : would be self-intersecting. (What PHP gets wrong is !isSet ? 4 : isEmpty ? 2 : 3 which it, unlike all sane languages, parses as (!isSet ? 4 : isEmpty) ? 2 : 3 aka !isSet || isEmpty ? 2 : 3 which is rarely what was intended.) Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Emacs-diffs] master 6354e3c: Handle indentation of nested ternary operators in JS 2017-04-13 19:24 ` [Emacs-diffs] master 6354e3c: Handle indentation of nested ternary operators in JS Stefan Monnier 2017-04-13 21:36 ` Davis Herring @ 2017-04-13 22:01 ` Dmitry Gutov 1 sibling, 0 replies; 3+ messages in thread From: Dmitry Gutov @ 2017-04-13 22:01 UTC (permalink / raw) To: Stefan Monnier, emacs-devel On 13.04.2017 22:24, Stefan Monnier wrote: >> + isSet >> + ? (isEmpty ? 2 : 3) >> + : 4 > > Not sure about JS, but at least in C, those parentheses are not needed > (so the indentation code should ideally DTRT even in the absence of > parentheses). You're right, it's the same in JS. Luckily, most programmers don't feel comfortable leaving the inner group without parentheses (so the reporter went away satisfied). Not exactly sure what logic to use to support the paren-less case, so patch welcome! ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-04-13 22:01 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20170413005145.27131.34535@vcs0.savannah.gnu.org> [not found] ` <20170413005146.2054022EE8@vcs0.savannah.gnu.org> 2017-04-13 19:24 ` [Emacs-diffs] master 6354e3c: Handle indentation of nested ternary operators in JS Stefan Monnier 2017-04-13 21:36 ` Davis Herring 2017-04-13 22:01 ` Dmitry Gutov
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).