prettier v1.17.1 Release Notes

Release Date: 2019-05-13 // almost 5 years ago
  • diff

    • Range: Fix ranged formatting not using the correct line width (#6050 by @mathieulj)

    <!-- prettier-ignore -->

      // Input
      function f() {
        if (true) {
          call("this line is 79 chars", "long", "it should", "stay as single line");
        }
      }
    
      // Output (Prettier 1.17.0 run with --range-start 30 --range-end 110)
      function f() {
        if (true) {
          call(
            "this line is 79 chars",
            "long",
            "it should",
            "stay as single line"
          );
        }
      }
    
      // Output (Prettier 1.17.0 run without range)
      function f() {
        if (true) {
          call("this line is 79 chars", "long", "it should", "stay as single line");
        }
      }
    
      // Output (Prettier 1.17.1 with and without range)
      function f() {
        if (true) {
          call("this line is 79 chars", "long", "it should", "stay as single line");
        }
      }
    
    • JavaScript: Fix closure compiler typecasts ([#5947] by @jridgewell)

    If a closing parenthesis follows after a typecast in an inner expression, the typecast would wrap everything to the that following parenthesis.

    <!-- prettier-ignore -->

      // Input
      test(/** @type {!Array} */(arrOrString).length);
      test(/** @type {!Array} */((arrOrString)).length + 1);
    
      // Output (Prettier 1.17.0)
      test(/** @type {!Array} */ (arrOrString.length));
      test(/** @type {!Array} */ (arrOrString.length + 1));
    
      // Output (Prettier 1.17.1)
      test(/** @type {!Array} */ (arrOrString).length);
      test(/** @type {!Array} */ (arrOrString).length + 1);
    
    • JavaScript: respect parenthesis around optional chaining before await (#6087 by @evilebottnawi)

    <!-- prettier-ignore -->

      // Input
      async function myFunction() {
        var x = (await foo.bar.blah)?.hi;
      }
    
      // Output (Prettier 1.17.0)
      async function myFunction() {
        var x = await foo.bar.blah?.hi;
      }
    
      // Output (Prettier 1.17.1)
      async function myFunction() {
        var x = (await foo.bar.blah)?.hi;
      }
    
    • 🔀 Handlebars: Fix {{else}}{{#if}} into {{else if}} merging (#6080 by @dcyriller)

    <!-- prettier-ignore -->

      // Input
      {{#if a}}
        a
      {{else}}
        {{#if c}}
          c
        {{/if}}
        e
      {{/if}}
    
      // Output (Prettier 1.17.0)
      {{#if a}}
        a
      {{else if c}}
        c
      e
      {{/if}}
    
      // Output (Prettier 1.17.1)
      Code Sample
      {{#if a}}
        a
      {{else}}
        {{#if c}}
          c
        {{/if}}
        e
      {{/if}}
    
    • JavaScript: Improved multiline closure compiler typecast comment detection (#6070 by @yangsu)

    Previously, multiline closure compiler typecast comments with lines that start with * weren't flagged correctly and the subsequent parenthesis were stripped. Prettier 1.17.1 fixes this issue.

    <!-- prettier-ignore -->

      // Input
      const style =/**
       * @type {{
       *   width: number,
       * }}
      */({
        width,
      });
    
      // Output (Prettier 1.17.0)
      const style =/**
       * @type {{
       *   width: number,
       * }}
      */ {
        width,
      };
    
      // Output (Prettier 1.17.1)
      const style =/**
       * @type {{
       *   width: number,
       * }}
      */({
        width,
      });