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.
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.)