GNU bug report logs -
#77803
tsx-ts-mode: wrong indentation for variables declarations
Previous Next
Full log
View this message in rfc822 format
On Tue, 2025-04-15 at 12:02 +0300, Eli Zaretskii wrote:
> > From: Konstantin Kharlamov <Hi-Angel <at> yandex.ru>
> > Date: Mon, 14 Apr 2025 18:41:42 +0300
> >
> > Given this TypeScript snippet:
> >
> > const a = 1,
> > b = 2;
> > var c = 3,
> > d = 4;
> >
> > …both b and d are expected to be indented to `typescript-ts-mode-
> > indent-offset`
> > (2 by default). This both makes logical sense and is the behavior
> > in another
> > editor VSCode.
> >
> > Instead it gets indented to the length of `const` and `var` +
> > space.
> >
> > I'd note a separate problem: if you have this code:
> >
> >
> > const a = 1,
> > b = 2,
> > c = 3;
> >
> > …and you try to indent `c`, instead of getting indented to the
> > previous line it
> > keeps being at "const + space" length.
>
> Thanks.
>
> Theo and Yuan, any suggestions or comments?
I dug into it a big — I think, the solution should be adding this line
((parent-is "variable_declarator") parent-bol typescript-ts-mode-indent-offset)
to the list inside `typescript-ts-mode--indent-rules`.
However, when I evaluate the defun and try re-indenting, nothing
changes, it still gets indented to `const `.
I see that evaluating `(treesit-node-parent (treesit-node-at (point)))`
results in "#<treesit-node variable_declarator in 623-688>", so
presumably the fix should work. I'd appreciate a hint on how to see
what rule gets actually triggered during indentation, that results in
the change not doing anything.
This bug report was last modified 73 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.