Ok, here is an updated patch for option 3. The indentation looks like the examples you've provided - it's the same indentation as in js-mode for these cases. On Thu, Apr 25, 2024 at 6:06 PM Dmitry Gutov wrote: > On 26/04/2024 01:48, Noah Peart wrote: > > Ok, I can make a patch for option 3 (the same as js-mode) instead. It's > > implementation is the simplest also. Would that work? > > I'd be okay with it, yes, thank you. If only because it's good to have > similar defaults in both modes, and evolve them together until one is > deprecated. > > FTR, the option more in line with my previous explanation would be > option 3, I think. Rhere's no real need to implement it right now, I > guess, but for illustration: > > const a = > (x: string): string => { > return x + x; > }, > bbb = > { > "x": 0 > }, > cccc = > 1, > ddddd = 0; > > const bbb = > { > "x": 0 > }, a = (x: string): string => { > return x + x; > }, > bbb = { > "x": 0 > }, > cccc = 1, > ddddd = 0; > > js-mode also has by necessity the below exceptions: when the first > variable's value starts on the same line, and it's multiline (usually > that means that the same line ends with a {), then its indentation level > goes back to the statement, not to the "const" keyword: > > const a = (x: string): string => { > return x + x; > } > > var bbb = { > "x": 0 > } > > This is basically to support the non-multivar declarations better. > js-ts-mode now has the exact same indentation; these cases might come up > when you change how the first two cases indent, however. >