Yea, I agree that would be better - would you align on start the variable names, or '=' like `c-lineup-assignments`? On Sat, Dec 30, 2023 at 7:31 PM Dmitry Gutov wrote: > On 30/12/2023 22:31, Yuan Fu wrote: > > > >> On Dec 29, 2023, at 8:24 PM, Yuan Fu wrote: > >> > >> > >> > >>> On Dec 26, 2023, at 10:21 PM, Noah Peart > wrote: > >>> > >>> Tags: patch > >>> > >>> * Bug: `js-ts-mode` and `typescript-ts-mode` are missing indentation > >>> rules for lexical declarations that span multiple lines. > >>> > >>> Recipe to reproduce: > >>> > >>> Using the following function to configure js-ts-mode and indent the > >>> buffer: > >>> > >>> (defun try-indent () > >>> (interactive) > >>> (js-ts-mode) > >>> (setq-local indent-tabs-mode nil) > >>> (setq-local js-indent-level 4) > >>> (indent-region (point-min) (point-max))) > >>> > >>> Add the following example to a buffer and call `try-indent`. > >>> > >>> let foo = 1, > >>> bar = 2; // no indent rule matches this line > >>> > >>> No indentation is applied to the second line. > >>> > >>> This patch adds a simple indentation rules for `js-ts-mode` and > >>> `typescript-ts-mode` to handle the multi-line lexical declarations. > > It seems that js-mode indents bar to align with foo, rather than > indenting one level. I feel that we should do the same, WDYT? > > Yes, please. This also makes a difference when the variables are > declared with 'const' instead of 'let'. > > We should also support 'var' declarations: the parent node type to match > against is "variable_declaration". >