From 8ef28247254f78b1c32bea2d3e70482de6ef4f17 Mon Sep 17 00:00:00 2001 From: TSMMark Date: Sun, 19 Nov 2017 14:05:14 -0500 Subject: [PATCH] docs - jsx-one-expression-per-line --- README.md | 1 + docs/rules/jsx-one-expression-per-line.md | 104 ++++++++++++++++++ lib/rules/jsx-one-expression-per-line.js | 4 +- .../lib/rules/jsx-one-expression-per-line.js | 2 +- 4 files changed, 108 insertions(+), 3 deletions(-) create mode 100644 docs/rules/jsx-one-expression-per-line.md diff --git a/README.md b/README.md index 9fe1dd5e99..9084d6ad27 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,7 @@ Finally, enable all of the rules that you would like to use. Use [our preset](# * [react/jsx-no-literals](docs/rules/jsx-no-literals.md): Prevent usage of unwrapped JSX strings * [react/jsx-no-target-blank](docs/rules/jsx-no-target-blank.md): Prevent usage of unsafe `target='_blank'` * [react/jsx-no-undef](docs/rules/jsx-no-undef.md): Disallow undeclared variables in JSX +* [react/jsx-one-expression-per-line](docs/rules/jsx-one-expression-per-line.md): Limit to one expression per line in JSX * [react/jsx-curly-brace-presence](docs/rules/jsx-curly-brace-presence.md): Enforce curly braces or disallow unnecessary curly braces in JSX * [react/jsx-pascal-case](docs/rules/jsx-pascal-case.md): Enforce PascalCase for user-defined JSX components * [react/jsx-sort-props](docs/rules/jsx-sort-props.md): Enforce props alphabetical sorting (fixable) diff --git a/docs/rules/jsx-one-expression-per-line.md b/docs/rules/jsx-one-expression-per-line.md new file mode 100644 index 0000000000..74d2dbe03e --- /dev/null +++ b/docs/rules/jsx-one-expression-per-line.md @@ -0,0 +1,104 @@ +# One JSX Element Per Line (react/jsx-indent) + +This option limits every line in JSX to one expression each. + +**Fixable:** This rule is automatically fixable using the `--fix` flag on the command line. +Fixer will insert line breaks between any expression that are on the same line. + +## Rule Details + +The following patterns are considered warnings: + +```jsx + + + + + + + + + + + World + + + + { 'World' } + + + + { this.world() } + + + + { 'Hello' }{ ' ' }{ 'World' } + + + + + + + + + + + + +``` + +The following patterns are **not** warnings: + +```jsx + + + + + + + + + + + + World + + + + + { 'World' } + + + + + { this.world() } + + + + { 'Hello' } + { ' ' } + { 'World' } + + + + + + + + + + + + + + + +``` diff --git a/lib/rules/jsx-one-expression-per-line.js b/lib/rules/jsx-one-expression-per-line.js index 0ee1746232..fa0a164af1 100644 --- a/lib/rules/jsx-one-expression-per-line.js +++ b/lib/rules/jsx-one-expression-per-line.js @@ -1,5 +1,5 @@ /** - * @fileoverview Limit to one element tag per line in JSX + * @fileoverview Limit to one expression per line in JSX * @author Mark Ivan Allen */ @@ -12,7 +12,7 @@ module.exports = { meta: { docs: { - description: 'Limit to one element tag per line in JSX', + description: 'Limit to one expression per line in JSX', category: 'Stylistic Issues', recommended: false }, diff --git a/tests/lib/rules/jsx-one-expression-per-line.js b/tests/lib/rules/jsx-one-expression-per-line.js index ad9b3baf3f..c3de187517 100644 --- a/tests/lib/rules/jsx-one-expression-per-line.js +++ b/tests/lib/rules/jsx-one-expression-per-line.js @@ -1,5 +1,5 @@ /** - * @fileoverview Limit to one element tag per line in JSX + * @fileoverview Limit to one expression per line in JSX * @author Mark Ivan Allen */