orktes / atom-react

ReactJS Support for atom (syntax, snippets)
http://orktes.github.io/atom-react/
MIT License
476 stars 80 forks source link

Fix indent for closing bracket (eslint rule react/jsx-closing-bracket-location) #299

Open MartinCura opened 5 years ago

MartinCura commented 5 years ago

Follow eslint rule react/jsx-closing-bracket-location [1] by decreasing indent for a lonely closing bracket and not doing so for its next line. Fixes #129, fixes #210, fixes #284.

If a multi-line element is self-closing, the closing bracket should be aligned with the opening bracket. And because of this, there's no need to decrease the indent on the next line (less so automatically each time one types anything).

For example, under the previous behaviour:

<View>
  <Image
    source={...}
    style={{ width: 20 }}
    />
  <Text>Lorem ipsum</Text>
</View>

If one where to correct it manually, the next line would be problematic:

<View>
  <Image
    source={...}
    style={{ width: 20 }}
  />
<Text>Lorem ipsum</Text>
</View>

New behaviour:

<View>
  <Image
    source={...}
    style={{ width: 20 }}
  />
  <Text>Lorem ipsum</Text>
</View>

Checked for test regressions :heavy_check_mark:

Previous fix in #131 was rollbacked. Anything i can help with so that this is merged, please tell me!

[1] https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-closing-bracket-location.md