From: Dmitry Gutov <dgutov@yandex.ru>
To: Marcin Borkowski <mbork@mbork.pl>, Lars Ingebrigtsen <larsi@gnus.org>
Cc: 40760@debbugs.gnu.org
Subject: bug#40760: 27.0.50; An indentation problem with const and chaining in js-mode
Date: Fri, 18 Mar 2022 03:12:01 +0200 [thread overview]
Message-ID: <0f3dfed4-f61a-87f9-6325-ca9d80e7077e@yandex.ru> (raw)
In-Reply-To: <87ilsgvo2q.fsf@mbork.pl>
On 14.03.2022 12:13, Marcin Borkowski wrote:
>
> On 2022-03-14, at 10:40, Lars Ingebrigtsen <larsi@gnus.org> wrote:
>
>> Marcin Borkowski <mbork@mbork.pl> writes:
>>
>>> When declaring a const variable which is assigned a value of a long,
>>> chained expression, the default indentation is wrong (compared to a let
>>> declaration):
>>>
>>> let a = /regex/
>>> .test('regex hello');
>>>
>>> const a = /regex/
>>> .test('regex hello');
>>
>> I think this is the intended indentation? That is, they indent to where
>> the "a" is.
>
> Well, in a tab-only indentation style (used by many people, me included)
> this is _very_ wrong, e.g. because it results in Emacs using both tabs
> and spaces here.
I'm fairly certain it's not a very popular style, but we should try to
cater to it as well, of course.
>> Marcin Borkowski <mbork@mbork.pl> writes:
>>
>>> This is the temporary solution I employed:
>>>
>>> (setq js--declaration-keyword-re "\\<\\(let\\|var\\)\\>")
>>>
>>> I would suggest turning this variable into a user option.
>>
>> This isn't just used for indentation, so altering this const will lead
>> to other breakages (and so it shouldn't be customiseable, either).
>
> Grep apparently disagrees - I found 5 occurrences of
> `js--declaration-keyword-re' in Emacs sources, and all of them seem to
> be related to indentation. So, I don't see any danger here. (Anyway,
> I changed it in my init.el; we'll see how that works.)
I think it would be better to add a more semantically-named user option.
This indentation feature was ported from js2-mode at some point, where
it is guarded by the (on by default) user option
js2-pretty-multiline-declarations. The option itself was lost in transition.
See js2-old-indent.el for more info.
next prev parent reply other threads:[~2022-03-18 1:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-22 9:05 bug#40760: 27.0.50; An indentation problem with const and chaining in js-mode Marcin Borkowski
2022-03-14 5:10 ` Marcin Borkowski
2022-03-14 9:40 ` Lars Ingebrigtsen
2022-03-14 10:13 ` Marcin Borkowski
2022-03-18 1:12 ` Dmitry Gutov [this message]
2022-03-21 6:26 ` Marcin Borkowski
2022-03-23 0:46 ` Dmitry Gutov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0f3dfed4-f61a-87f9-6325-ca9d80e7077e@yandex.ru \
--to=dgutov@yandex.ru \
--cc=40760@debbugs.gnu.org \
--cc=larsi@gnus.org \
--cc=mbork@mbork.pl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.