--- source: crates/biome_formatter_test/src/snapshot_builder.rs info: js/module/arrow/curried_indents.js --- # Input ```js // Parameters that break over multiple lines should match indention // with the opening parenthesis. // The second signature and onward are indented a second level. a.b( (a) => (b) => ( c = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdef", d = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdef", ) => (e) => 0, ); // In assignments, the first signature is indented, and all subsequent // signatures indent to the same level, not a second level in. // Block body statements also indent an additional level from the last // signature. x = (bifornCringerMoshedPerplexSawder) => ((askTrovenaBeenaDependsRowans, glimseGlyphsHazardNoopsTieTie) => (f00) => { averredBathersBoxroomBuggyNurl(); } // BOOM ) // Chained assignments with arrow functions indent an additional level from the // last assignment, then all subsequent signatures are at the same level const bifornCringer1 = askTrovenaBeenaDepends = glimseGlyphs = (argumentOne, argumentTwo) => (restOfTheArguments12345678) => { return "baz"; }; const bifornCringer2 = askTrovenaBeenaDepends = glimseGlyphs = (argumentOne, argumentTwo) => (restOfTheArguments12345678) => (yetAnotherArgumentPastLineWidth) => { return "baz"; }; // Same-line bodies that end up expanding only indent a single time. import('./someComponent').then(({default: TheComponent}) => (props) => ( )); ``` ============================= # Outputs ## Output 1 ----- Indent style: Tab Indent width: 2 Line ending: LF Line width: 80 Quote style: Double Quotes JSX quote style: Double Quotes Quote properties: As needed Trailing comma: All Semicolons: Always Arrow parentheses: Always Bracket spacing: true Bracket same line: false Attribute Position: Auto ----- ```js // Parameters that break over multiple lines should match indention // with the opening parenthesis. // The second signature and onward are indented a second level. a.b( (a) => (b) => ( c = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdef", d = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdef", ) => (e) => 0, ); // In assignments, the first signature is indented, and all subsequent // signatures indent to the same level, not a second level in. // Block body statements also indent an additional level from the last // signature. x = (bifornCringerMoshedPerplexSawder) => (askTrovenaBeenaDependsRowans, glimseGlyphsHazardNoopsTieTie) => (f00) => { averredBathersBoxroomBuggyNurl(); }; // BOOM // Chained assignments with arrow functions indent an additional level from the // last assignment, then all subsequent signatures are at the same level const bifornCringer1 = (askTrovenaBeenaDepends = glimseGlyphs = (argumentOne, argumentTwo) => (restOfTheArguments12345678) => { return "baz"; }); const bifornCringer2 = (askTrovenaBeenaDepends = glimseGlyphs = (argumentOne, argumentTwo) => (restOfTheArguments12345678) => (yetAnotherArgumentPastLineWidth) => { return "baz"; }); // Same-line bodies that end up expanding only indent a single time. import("./someComponent").then(({ default: TheComponent }) => (props) => ( )); ``` ## Output 2 ----- Indent style: Tab Indent width: 2 Line ending: LF Line width: 80 Quote style: Double Quotes JSX quote style: Double Quotes Quote properties: As needed Trailing comma: All Semicolons: Always Arrow parentheses: As needed Bracket spacing: true Bracket same line: false Attribute Position: Auto ----- ```js // Parameters that break over multiple lines should match indention // with the opening parenthesis. // The second signature and onward are indented a second level. a.b( a => b => ( c = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdef", d = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdef", ) => e => 0, ); // In assignments, the first signature is indented, and all subsequent // signatures indent to the same level, not a second level in. // Block body statements also indent an additional level from the last // signature. x = bifornCringerMoshedPerplexSawder => (askTrovenaBeenaDependsRowans, glimseGlyphsHazardNoopsTieTie) => f00 => { averredBathersBoxroomBuggyNurl(); }; // BOOM // Chained assignments with arrow functions indent an additional level from the // last assignment, then all subsequent signatures are at the same level const bifornCringer1 = (askTrovenaBeenaDepends = glimseGlyphs = (argumentOne, argumentTwo) => restOfTheArguments12345678 => { return "baz"; }); const bifornCringer2 = (askTrovenaBeenaDepends = glimseGlyphs = (argumentOne, argumentTwo) => restOfTheArguments12345678 => yetAnotherArgumentPastLineWidth => { return "baz"; }); // Same-line bodies that end up expanding only indent a single time. import("./someComponent").then(({ default: TheComponent }) => props => ( )); ```