marko-js / marko-migrate

Tool for migrating a project using marko v2 to marko v3
MIT License
5 stars 4 forks source link

An in-range update of prettier is breaking the build 🚨 #36

Open greenkeeper[bot] opened 6 years ago

greenkeeper[bot] commented 6 years ago

Version 1.8.0 of prettier was just published.

Branch Build failing 🚨
Dependency prettier
Current Version 1.7.4
Type devDependency

This version is covered by your current version range and after updating it in your project the build failed.

prettier is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details - ❌ **continuous-integration/travis-ci/push** The Travis CI build could not complete due to an error [Details](https://travis-ci.org/marko-js/marko-migrate/builds/298356806?utm_source=github_status&utm_medium=notification)

Release Notes 1.8.0: Markdown Support

image

This release adds Markdown support, a new --insert-pragma flag, fixes a number of formatting issues, adds support for some new experimental operators, and improves our editor integration support.

Highlights

Markdown Support

Support markdown (#2943) by @ikatyang

You can now run Prettier on Markdown files! 🎉

The implementation is highly compliant with the CommonMark spec, and backed by the excellent remark-parse package.

Word Wrap

One of Prettier's core features is its ability to wrap code at a specified line length. This applies to Markdown too, which means you can maintain nice and clean 80-character-wide Markdown files without having to re-adjust line breaks manually when you add or delete words.

Input:

Voilà! In view, a humble vaudevillian veteran cast vicariously as both victim and villain by the vicissitudes of Fate. This visage, no mere veneer of vanity, is a vestige of the vox populi, now vacant, vanished. However, this valourous visitation of a bygone vexation stands vivified and has vowed to vanquish these venal and virulent vermin vanguarding vice and vouchsafing the violently vicious and voracious violation of volition! The only verdict is vengeance; a vendetta held as a votive, not in vain, for the value and veracity of such shall one day vindicate the vigilant and the virtuous. Verily, this vichyssoise of verbiage veers most verbose, so let me simply add that it's my very good honour to meet you and you may call me V.

Output:

Voilà! In view, a humble vaudevillian veteran cast vicariously as both victim
and villain by the vicissitudes of Fate. This visage, no mere veneer of vanity,
is a vestige of the vox populi, now vacant, vanished. However, this valourous
visitation of a bygone vexation stands vivified and has vowed to vanquish these
venal and virulent vermin vanguarding vice and vouchsafing the violently vicious
and voracious violation of volition! The only verdict is vengeance; a vendetta
held as a votive, not in vain, for the value and veracity of such shall one day
vindicate the vigilant and the virtuous. Verily, this vichyssoise of verbiage
veers most verbose, so let me simply add that it's my very good honour to meet
you and you may call me V.

Note for CJK users: If your markdown renderer does not support CJK line ending, you'll have to use plugin like markdown-it-perfect-newline-for-cjk, hexo-filter-fix-cjk-spacing, etc. to remove additional spaces.

// Source
一二三
四五六
七八九

// Rendered content with unsupported renderer
一二三 四五六 七八九

// Rendered content with supported renderer or via plugin
一二三四五六七八九

Code Formatting

Powered by Prettier's generic "multiparser", Prettier will format code blocks in Markdown! We use the language code provided with the code block to determine which language it is, and thus we can format any language that Prettier supports (including Markdown itself, if you're into that).

Input:

```js
reallyUgly    (
javascript
  )
```

```css
.h1 {     color : red }
```

Output:

```js
reallyUgly(javascript);
```

```css
.h1 {
  color: red;
}
```

Note: In some cases you may not want to format your code in Markdown, and just like in other languages, in Markdown you can use <!-- prettier-ignore --> before the code block to ignore it from formatting.

Lists

When rearranging list items, after running Prettier all the numbers will be fixed!

Markdown Lists

Note: you can actually opt out of this by using 1. for all list items if you want to optimize for cleaner diffs.

Tables

Tables will also automatically be adjusted to fit their contents. This could be completely unmaintainable without an automated tool.

Markdown Tables

Markdown-in-JS

By using either md or markdown tagged template literals, you can format markdown code inside JavaScript.

const markdown = md`
  # heading

  1. list item
`;

CLI

Add option to insert @format to first docblock if absent (#2865) by @samouri

In 1.7, we added an option called --require-pragma to require files contain an /** @format */ pragma to be formatted. In order to add this pragma to a large set of files you can now use --insert-pragma flag.

prettier --write "folder/**/*.js" --insert-pragma

Add --loglevel option (#2992) by @ikatyang

This nifty feature allows you to opt in (or out) of Prettier's logging. We've also cleaned up the logging substantially since 1.7.

$ prettier --loglevel=debug blarg
$ ./bin/prettier.js --loglevel=debug blarg
[debug] normalized argv: {"_":["blarg"],"bracket-spacing":false,"color":true,"debug-check":false,"debug-print-doc":false,"flow-parser":false,"insert-pragma":false,"jsx-bracket-same-line":false,"list-different":false,"require-pragma":false,"semi":false,"single-quote":false,"stdin":false,"use-tabs":false,"version":false,"with-node-modules":false,"write":false,"loglevel":"debug","ignore-path":".prettierignore","config-precedence":"cli-override"}
[error] No matching files. Patterns tried: blarg !**/node_modules/** !./node_modules/**

JavaScript

Fix indentation for JSDoc comments (#2470) by @maxdeviant

This has been a long-time known issue with Prettier. When formatting code that results in a change of indentation level, the JSDoc comments would end up being out of alignment. We're happy to report this is now fixed!

// Before
function theFunction2(action$, store) {
  /*
     * comments
     */
  return true;
}

// After
function theFunction2(action$, store) {
  /*
   * comments
   */
  return true;
}

Print pipeline and nullish-coalescing operators (#3036) by @azz

We've added support for two new proposed operators to Prettier: the pipeline operator and the nullish coalescing operator.

The pipeline operator is currently a stage one proposal.

This proposal introduces a new operator |> similar to F#, OCaml, Elixir, Elm, Julia, Hack, and LiveScript, as well as UNIX pipes. It's a backwards-compatible way of streamlining chained function calls in a readable, functional manner, and provides a practical alternative to extending built-in prototypes.

// Before
let result = exclaim(capitalize(doubleSay("hello")));

// After
let result = "hello"
  |> doubleSay
  |> capitalize
  |> exclaim;

The nullish coalescing operator is another stage one proposal.

When performing optional property access in a nested structure in conjunction with the optional chaining operator, it is often desired to provide a default value if the result of that property access is null or undefined.

This operator is similar to || except it only evaluates the right-hand-side if the left is undefined or null, not "", 0, NaN, etc.

const foo = object.foo ?? "default";

Improved template literal expresions line breaks (#3124) by @duailibe

This was another known issue with Prettier, when printing a template literal string with expressions inside that went over the print width, it would wrap the code in weird places inside the expressions. Now, if Prettier needs to insert a line break, it should happen right between ${ and }.

// Before
const description = `The value of the ${cssName} css of the ${this
  ._name} element`;

const foo = `mdl-textfield mdl-js-textfield ${className} ${content.length > 0
  ? "is-dirty"
  : ""} combo-box__input`;

// After
const description = `The value of the \${cssName} css of the \${
  this._name
} element`;

const foo = `mdl-textfield mdl-js-textfield ${className} ${
  content.length > 0 ? 'is-dirty' : ''
} combo-box__input`

JSX

Don't inline trailing } for arrow functions attributes (#3110) by @duailibe

In order to align closer to the Airbnb style guide, and since it was never intentionally printed this way, we've moved the } from to the next line in JSX. This is more diff friendly, and makes it easier to move code around by shifting lines in your editor.

// Before
<BookingIntroPanel
  logClick={data =>
    doLogClick("long_name_long_name_long_name", "long_name_long_name_long_name", data)}
/>;

// After
<BookingIntroPanel
  logClick={data =>
    doLogClick("long_name_long_name_long_name", "long_name_long_name_long_name", data)
  }
/>;

Other Changes

JavaScript

Make the factory detection handle multiple elements (#3112) by @vjeux

There was a bug in the heuristic that Prettier uses to determine whether an expression is a factory or not. It now works correctly with longer member expressions.

// Before
window.FooClient
  .setVars({
    locale: getFooLocale({ page }),
    authorizationToken: data.token
  })
  .initVerify("foo_container");

// After
window.FooClient.setVars({
  locale: getFooLocale({ page }),
  authorizationToken: data.token
}).initVerify("foo_container");

Handle comments between function name and open paren (#2979) by @azz

Printing comments in the right place is an endless challenge 😉. This fix ensures that comments next to function names are re-printed correctly.

// Before
function f(/* comment*/ promise) {}

// After 
function f /* comment*/(promise) {}

Support sequential CallExpressions in member chains (#2990) by @chrisvoll

Member chains are one of the most complex parts of Prettier. This PR fixes an issue where repeated calls lead to the next method not being pushed to the next line.

// Before
wrapper
  .find("SomewhatLongNodeName")
  .prop("longPropFunctionName")().then(function() {
  doSomething();
});

// After
wrapper
  .find("SomewhatLongNodeName")
  .prop("longPropFunctionName")()
  .then(function() {
    doSomething();
  });

Account for empty lines in long member call chain (#3035) by @jackyho112

Previously, Prettier would delete all newlines within a member chain. Now we keep up to one if it's in the source. This is nice for fluent APIs that you want to break up over multiple lines.

angular
  .module("AngularAppModule")

  // Constants.
  .constant("API_URL", "http://localhost:8080/api")

  // App configuration.
  .config(appConfig)
  .run(appRun);

Fix issue where first argument is left behind when line breaks (#3079) by @mutdmour

This addresses an issue where due to our special object inline behaviour, the indentation missing from the function call.

// Before
db.collection("indexOptionDefault").createIndex({ a: 1 },
{
  indexOptionDefaults: true
},
function(err) {
  // code
});

// After
db.collection("indexOptionDefault").createIndex(
  { a: 1 },
  {
    indexOptionDefaults: true
  },
  function(err) {
    // code
  }
);

Break parens for binaries in member expression (#2958) by @duailibe

Similarly, there was another edge case where indentation was missing from logical expressions. This is fixed, too.

// Before
const someLongVariable = (idx(
  this.props,
  props => props.someLongPropertyName
) || []
).map(edge => edge.node);

// After
const someLongVariable = (
  idx(this.props, props => props.someLongPropertyName) || []
).map(edge => edge.node);

Prevent breaking MemberExpression inside NewExpression (#3075) by @duailibe

There are so many ways to break a line. Some of them look much worse than others. Breaking between in this case looked really weird, so it has been fixed!

// Before
function functionName() {
  if (true) {
    this._aVeryLongVariableNameToForceLineBreak = new this
      .Promise((resolve, reject) => {
        // do something
      });
  }
}

// After
function functionName() {
  if (true) {
    this._aVeryLongVariableNameToForceLineBreak = new this.Promise(
      (resolve, reject) => {
        // do something
      }
    );
  }
}

Fix array acessors in method chains (#3137) by @duailibe

In a method chain we split lines by grouping elements together and accessing an array should be printed in the end of a group instead of the beginning.

// Before
find('.org-lclp-edit-copy-url-banner__link')
  [0].getAttribute('href')
  .indexOf(this.landingPageLink)

// After
find('.org-lclp-edit-copy-url-banner__link')[0]
  .getAttribute('href')
  .indexOf(this.landingPageLink)

Flow and TypeScript

Fix indentation of intersection object types (#3074) by @duailibe

This was a minor alignment bug in intersection types, and has now been fixed.

// Before
type intersectionTest = {
  propA: X
} & {
  propB: X
} & {
    propC: X
  } & {
    propD: X
  };

// After
type Props = {
  propA: X
} & {
  propB: X
} & {
  propC: X
} & {
  propD: X
};

Keep parens around TSAsExpression in ConditionalExpression (#3053) by @azz

We missed a case where we need to keep the parenthesis with TypeScript's as assertions. This is now fixed.

// Before
aValue as boolean ? 0 : -1;

// After
(aValue as boolean) ? 0 : -1;

JSX

Collapse multiple JSX whitespaces (#2973) by @karl

This fixes up the issue where JSX formatting occasionally needed to be run twice to become stable. This occurred when you had multiple JSX whitespace elements or JSX whitespace followed by a space.

// Before
<div>
    {" "} <Badge src={notificationIconPng} />
</div>;

// After
<div>
  {" "}
  <Badge src={notificationIconPng} />
</div>

Don't print JSX bracket on same line when it has trailing comments (#3088) by @azz

This was an issue with the --jsx-bracket-same-line option. Turns out you can't always put the bracket on the same line...

// Input
<div
  // comment
>
  {foo}
</div>

// Before
<div>
// comment
  {foo}
</div>;

// After
<div
// comment
>
  {foo}
</div>;

CSS

Preserve line breaks in grid declarations (#3133) by @duailibe

Prettier will now preserve line breaks included in the source code when formatting the grid and grid-template-* rules, since those are important to keep in separate lines, but still applies the formatting like other rules (e.g., numbers and quotes).

/* Original Input */
div {
  grid:
    [wide-start] 'header header header' 200.000px
    [wide-end] "footer footer footer" .50fr
    / auto 50.000px auto;
}

/* Before */
div {
  grid: [wide-start] "header header header" 200px [wide-end]
    "footer footer footer" 0.5fr / auto 50px auto;
}

/* After */
div {
  grid:
    [wide-start] "header header header" 200px
    [wide-end] "footer footer footer" 0.5fr
    / auto 50px auto;
}

SCSS

Format SCSS maps like CSS rules (#3070) by @asmockler

Turns out SCSS maps are much prettier when printed over multiple lines.

// Before
$map: (color: #111111, text-shadow: 1px 1px 0 salmon)

// After
$map: (
  color: #111111,
  text-shadow: 1px 1px 0 salmon
);

CSS-in-JS

Fix formatting styled(Foo).attrs(...)`` (#3073) by @existentialism

Prettier will now format the CSS in styled-components code that looks like this:

styled(Component).attrs({})`
  color: red;
`;

GraphQL

Prevent formatting GraphQL template literals with expressions (#2975) by @duailibe

Prettier doesn't support formatting JavaScript expressions in GraphQL. See #2640 for tracking. There was a bug where formatting an expression lead to invalid code, so we've completely disabled formatting GraphQL when it contains JavaScript expressions until we fully support it.

// Before
(invalid code)

// After
graphql(schema, `{ query test { id }} ${fragment}`)

CLI

Don't use ANSI codes if stdout isn't a TTY (#2903) by @Narigo

Previously, piping the output of --list-different to other tools was troublesome due to the ANSI color codes we use to show whether a file was modified or not. This PR disables the use of color when Prettier is piped to a different process.

Configuration

Use relative paths with CLI (#2969) by @ahmedelgabri

This fixes a bug where passing a path starting with ./ to the CLI wouldn't match patterns used in .prettierignore.

# .prettierignore
path/to/*.js

After this fix, no files will be written to when executing:

$ prettier --write ./path/to/*.js

Resolve file paths relative to config file (#3037) by @azz

This fixes an issue where .prettierrc overrides, under certain conditions, were not being respected for absolute paths with the resolveConfig API.

Core

Respect CJK width and Combined Characters (#3003, #3015) by @ikatyang

Chinese, Japanese and Korean characters are now considered two characters wide.

// Before (exceeds print width when CJK characters are 2x monospace chars)
const x = ["中文", "中文", "中文", "中文", "中文", "中文", "中文", "中文", "中文", "中文", "中文"];

// After
const x = [
  "中文",
   // ...
  "中文"
];

#3015 also ensures that combining characters (e.g. Á) are counted as one character.

Editor Support

Implement getSupportInfo() and use it for inference (#3033) by @azz

We've added a new function to the API (prettier.getSupportInfo([version])), and the CLI --support-info. This can be used to interrogate Prettier to find out which languages the current version, or an older version, supports. It also provides useful information such as CodeMirror IDs, tmScopes, etc, which can be used to automate some of the work done with lookup tables in text editor integrations.

Internally, we use this information to drive which extensions trigger which parsers, and support some common files that don't have extensions, like .prettierrc, Jakefile, etc.

# prettier knows that this file is JSON now.
$ prettier --write .prettierrc

Split source elements relative to their language. (#3069) by @CiGit

This fixes an issue in editors that support range formatting, where formatting an object would cause Prettier to crash.


Thanks! ❤️

Thanks to everyone who contributed to this release, as well as those who raised issues! Prettier has become a highly stable piece of software that a large amount of people trust with their code. We take that trust seriously, and fix rare issues that break code with the highest priority. We can't fix these issues if we don't know about them, so never be afraid to create an issue!

FAQ and help There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).

Your Greenkeeper Bot :palm_tree:

greenkeeper[bot] commented 6 years ago

After pinning to 1.7.4 your tests are still failing. The reported issue might not affect your project. These imprecisions are caused by inconsistent test results.

greenkeeper[bot] commented 6 years ago

Version 1.8.1 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.8.2 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.9.0 just got published.

Your tests are still failing with this version. Compare the changes 🚨

Release Notes 1.9.0: JSX Fragments, EditorConfig and Arrow Parens

image

This release adds an option for arrow function parens in arguments, support for the new JSX fragment syntax (<>), support for .editorconfig files, and nice additions to our GraphQL and Markdown support.

Highlights

JavaScript

Option to add parens in arrow function arguments (#3324) by @rattrayalex and @suchipi

When printing arrow functions, Prettier omitted parens around the arguments if they weren’t strictly necessary, like so:

// no parens
foo => {};

// parens
(foo: Number) => {};

// parens
({ foo }) => {}

// parens
(foo = 5) => {}

This lead to the most commented thread in our issue tracker. Prettier now has the --arrow-parens option (arrowParens in the config) that can assume two values today:

  • "avoid" - (default) preserve the behavior that omits parens when possible
  • "always" - always includes parens

JSX fragment syntax (#3237) by @duailibe

Prettier will now recognize and format JSX with the new fragment syntax, like the code below:

function MyComponent() {
  return (
    <>
      <Children1 />
      <Children2 />
      <Children3 />
    </>
  );
}

Fix slow formatting long texts in JSX (#3268, #3273) by @duailibe

We received feedback that formatting a JSX file with a really long text (~1000 lines) was really slow and noticed there was two performance bottlenecks in our fill primitive, which prints text until it reaches the print width and then insert a line break.

Markdown

Add an option to preserve text line breaks (#3340) by @ikatyang

After the release of our Markdown support, we received feedback that breaking text to respect the print width could affect some renderers that could be sensitive to line breaks. In 1.8.2 we released a new option proseWrap: false that would print a paragraph in a single line, and users would rely on the "soft wrapping" feature of editors.

In 1.9 we are releasing a new option proseWrap: "preserve" which will respect the original line breaks of text, and lets the users decide where the text should break.

[WARNING] proseWrap with boolean value is deprecated, use "always", "never" or "preserve" instead.

[BREAKING CHANGE] proseWrap option now defaults to "preserve" as some renderers are linebreak-sensitive.

GraphQL

Support top-level interpolations (#3370) by @lydell

When GraphQL support was released, Prettier did not support interpolation so it would skip formatting if any interpolations were present, because interpolations make formatting very difficult. While that works well for the most part, users of the Apollo Client were missing out on Prettier’s GraphQL support sometimes, because Apollo Client uses interpolation to share fragments between queries. The good news is that only top-level interpolations are allowed, and that was way easier to add support for in Prettier.

In 1.9 we format GraphQL queries with top-level interpolation:

gql`
  query User {
    user(id: "Bob") {
      ...UserDetails
    }
  }

  ${UserDetailsFragment}
`

(Prettier will continue to skip formatting if the interpolation is inside a query or mutation or so.)

Preserve intentional new lines in GraphQL (#3252) by @duailibe

Prettier will now respect intentional line breaks inside GraphQL queries (but limit to 1), where before it would remove them.

query User {
  name

  age
}

CSS

Don't lowercase element names and attribute names in selectors (#3317) by @lydell

CSS is mostly case insensitive, so Prettier has been lowercasing stuff for a while to keep things consistent. Turns out we overlooked a detail in the CSS spec. Element and attribute names in selectors depend on the markup language: In HTML they are case insensitive, but in SVG (XML) they are not. Previously Prettier would incorrectly lowercase element and attribute names, but now we don’t anymore.

Configuration

Add EditorConfig support (#3255) by @josephfrazier

It's taken a while, but Prettier will finally respect your .editorconfig file. This includes:

  • indent_style
  • indent_size/tab_width
  • max_line_length

The prettier CLI respects .editorconfig by default, but you can opt out with --no-editorconfig.
However, the API doesn't respect .editorconfig by default, in order to avoid potential editor integration issues (see here for details). To opt in, add editorconfig: true to the prettier.resolveConfig options.

Other changes

JavaScript

Don't break simple elements in JSX (#3250) by @duailibe

Prettier won't break an element with no attributes anymore, keeping elements like <br /> as an unit.

Don't break identifiers inside template literals expressions (#3299) by @duailibe

In the previous release we tried a new strategy of breaking template literals with expressions inside to respect the print width. We've received feedback that for some cases it was actually preferred that it would exceed print width than breaking in multiple lines.

From now on, template literals expressions that contain a single identifier won't break anymore:

const foo = `Hello ${username}. Today is ${month} ${day}. You have ${newMessages} new messages`.

Fix formatting of comment inside arrow function (#3334) by @jackyho112

Fixes an edge case where Prettier was moving comments around breaking tools like Webpack:

const API = {
  loader: () => import('./test' /* webpackChunkName: "test" */),
};

// would get formatted to

const API = {
  loader: (/* webpackChunkName: "test" */) => import("./test")
};

Fix printing of comments around decorators and class properties (#3382) by @azz

There was a case where comments between a decorator and a class property were moved to an invalid position.

// Before
class Something {
  @decorator
  static // comment
  property = 1;
}

// After
class Something {
  @decorator
  // comment
  static property = 1;
}

Flow

Do not break on empty type parameters (#3281) by @vjeux

It won't break empty type parameters (foo: Type<>) anymore.

Add support for flow mixins when using babylon (#3391) by @bakkot

We were accidentally dropping flow mixins, this has been fixed, but only for the babylon parser.

// Before
class Foo extends Bar {}

// After
class Foo extends Bar mixins Baz {}

TypeScript

Don't print a trailing comma after object rest spread (#3313) by @duailibe

This was inconsistent with JavaScript and Flow, Prettier won't print a trailing comma in the following cases, when using the TypeScript parser:

const {
  bar,
  baz,
  ...rest
} = foo;

Print parens around type assertions for decorators (#3329) by @azz

We were omitting parens around type assertions inside decorators:

@(bind as ClassDecorator)
class Decorated {}

Markdown

Don't break inlineCode (#3230) by @ikatyang

Prettier won't break text inside inlineCode meaning it will only break of after it.

No extra whitespace between non-CJK and CJK-punctuation and vice-versa (#3244, #3249) by @ikatyang

Fixes cases where Prettier would insert extra whitespace like in the following examples:

扩展运算符(spread )是三个点(`...`)。

This is an english paragraph with a CJK quote " 中文 ".

Escape all emphasis-like text (#3246) by @ikatyang

Fixes the case where \_\_text\_\_ would be formatted as __text__.

Handle punctuation variants (#3254) by @ikatyang

Prettier now considers not only ASCII punctuation characters but Unicode as well.

Support TOML front matter (#3290) by @ikatyang

We already supported YAML in the front matter of Markdown files and we added the TOML format as well, since some static site generators support it.

+++
date: '2017-10-10T22:49:47.369Z'
title: 'My Post Title'
categories: ['foo', 'bar']
+++

This is the markdown body of my post.

Only indent the first non-list node in checkbox list item (#3297) by @ikatyang

Fixes a bug where it would indent lines after a list when it shouldn't:

* parent list item

     * child list item

* [x] parent task list item

     * [x] child task list item

would become:

* parent list item

  * child list item

* [x] parent task list item

      * [x] child task list item

Preserve non-breaking whitespaces (#3327) by @ikatyang

Non-breaking whitespaces are useful to keep words separated by spaces together in the same line (i.e. number and units or multi-word product names). Prettier was wrongfully converting them to regular whitespaces.

Do not break before special prefix (#3347) by @ikatyang

Fixes a bug where Prettier could break text if it went over the print width right before a number followed by . which would be parsed as a numbered list:

She grew up in an isolated village in the 19th century and met her father aged
29. Oh no, why are we in a numbered list now?

Omit semicolon in simple JSX expressions (#3330) by @sapegin

Prettier will omit the semicolon (before and after) inside code samples if it's a simple JSX expression:

No semi:

```jsx
<div>Example</div>
```
greenkeeper[bot] commented 6 years ago

Version 1.9.1 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.9.2 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.10.0 just got published.

Your tests are still failing with this version. Compare the changes 🚨

Release Notes 1.10: One Year of Prettier 🎂

🔗 Release Notes

greenkeeper[bot] commented 6 years ago

Version 1.10.1 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.10.2 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.11.0 just got published.

Your tests are still failing with this version. Compare the changes 🚨

Release Notes Prettier 1.11: CSS fixes and new TypeScript feature support

🔗 Release Notes

greenkeeper[bot] commented 6 years ago

Version 1.11.1 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.12.0 just got published.

Your tests are still failing with this version. Compare the changes 🚨

Release Notes Prettier 1.12: Fixes, Features, and Formatting, Oh My!

🔗 Release Notes

greenkeeper[bot] commented 6 years ago

Version 1.12.1 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.13.0 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.13.1 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.13.2 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.13.3 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.13.4 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.13.5 just got published.

Your tests are still failing with this version. Compare the changes 🚨

greenkeeper[bot] commented 6 years ago

Version 1.13.6 just got published.

Your tests are still failing with this version. Compare the changes 🚨

Release Notes 1.13.6

🔗 Changelog

greenkeeper[bot] commented 6 years ago

Version 1.13.7 just got published.

Your tests are still failing with this version. Compare the changes 🚨

Release Notes 1.13.7

🔗 Changelog

greenkeeper[bot] commented 6 years ago

Version 1.14.0 just got published.

Your tests are still failing with this version. Compare the changes 🚨

Release Notes Prettier 1.14: YAML Support

🔗 Release Notes

greenkeeper[bot] commented 6 years ago

Version 1.14.1 just got published.

Your tests are still failing with this version. Compare the changes 🚨

Release Notes 1.14.1

🔗 Changelog

greenkeeper[bot] commented 6 years ago

Version 1.14.2 just got published.

Your tests are still failing with this version. Compare the changes 🚨

Release Notes 1.14.2

🔗 Changelog

greenkeeper[bot] commented 6 years ago

Your tests are still failing with this version. Compare changes

Release Notes for 1.14.3

🔗 Changelog

greenkeeper[bot] commented 5 years ago

Your tests are still failing with this version. Compare changes

Release Notes for Prettier 1.15: HTML, Vue, Angular and MDX Support

🔗 Release Notes

greenkeeper[bot] commented 5 years ago

Your tests are still failing with this version. Compare changes

Release Notes for 1.15.1

🔗 Changelog

greenkeeper[bot] commented 5 years ago

Your tests are still failing with this version. Compare changes

Release Notes for 1.15.2

🔗 Changelog

greenkeeper[bot] commented 5 years ago

Your tests are still failing with this version. Compare changes

Release Notes for 1.15.3

🔗 Changelog

greenkeeper[bot] commented 5 years ago

Your tests are still failing with this version. Compare changes

Release Notes for 1.16.1

🔗 Changelog

greenkeeper[bot] commented 5 years ago

Your tests are still failing with this version. Compare changes

Release Notes for 1.16.2

🔗 Changelog

greenkeeper[bot] commented 5 years ago

Your tests are still failing with this version. Compare changes

greenkeeper[bot] commented 5 years ago

Your tests are still failing with this version. Compare changes