mirror of
https://git.proxmox.com/git/pve-eslint
synced 2025-10-12 00:20:11 +00:00

includes a (minimal) working wrapper Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
329 lines
5.0 KiB
Markdown
329 lines
5.0 KiB
Markdown
# enforce consistent line breaks inside function parentheses (function-paren-newline)
|
|
|
|
Many style guides require or disallow newlines inside of function parentheses.
|
|
|
|
## Rule Details
|
|
|
|
This rule enforces consistent line breaks inside parentheses of function parameters or arguments.
|
|
|
|
### Options
|
|
|
|
This rule has a single option, which can either be a string or an object.
|
|
|
|
* `"always"` requires line breaks inside all function parentheses.
|
|
* `"never"` disallows line breaks inside all function parentheses.
|
|
* `"multiline"` (default) requires linebreaks inside function parentheses if any of the parameters/arguments have a line break between them. Otherwise, it disallows linebreaks.
|
|
* `"multiline-arguments"` works like `multiline` but allows linebreaks inside function parentheses if there is only one parameter/argument.
|
|
* `"consistent"` requires consistent usage of linebreaks for each pair of parentheses. It reports an error if one parenthesis in the pair has a linebreak inside it and the other parenthesis does not.
|
|
* `{ "minItems": value }` requires linebreaks inside function parentheses if the number of parameters/arguments is at least `value`. Otherwise, it disallows linebreaks.
|
|
|
|
Example configurations:
|
|
|
|
```json
|
|
{
|
|
"rules": {
|
|
"function-paren-newline": ["error", "never"]
|
|
}
|
|
}
|
|
```
|
|
|
|
```json
|
|
{
|
|
"rules": {
|
|
"function-paren-newline": ["error", { "minItems": 3 }]
|
|
}
|
|
}
|
|
```
|
|
|
|
Examples of **incorrect** code for this rule with the `"always"` option:
|
|
|
|
```js
|
|
/* eslint function-paren-newline: ["error", "always"] */
|
|
|
|
function foo(bar, baz) {}
|
|
|
|
var foo = function(bar, baz) {};
|
|
|
|
var foo = (bar, baz) => {};
|
|
|
|
foo(bar, baz);
|
|
```
|
|
|
|
Examples of **correct** code for this rule with the `"always"` option:
|
|
|
|
```js
|
|
/* eslint function-paren-newline: ["error", "always"] */
|
|
|
|
function foo(
|
|
bar,
|
|
baz
|
|
) {}
|
|
|
|
var foo = function(
|
|
bar, baz
|
|
) {};
|
|
|
|
var foo = (
|
|
bar,
|
|
baz
|
|
) => {};
|
|
|
|
foo(
|
|
bar,
|
|
baz
|
|
);
|
|
```
|
|
|
|
Examples of **incorrect** code for this rule with the `"never"` option:
|
|
|
|
```js
|
|
/* eslint function-paren-newline: ["error", "never"] */
|
|
|
|
function foo(
|
|
bar,
|
|
baz
|
|
) {}
|
|
|
|
var foo = function(
|
|
bar, baz
|
|
) {};
|
|
|
|
var foo = (
|
|
bar,
|
|
baz
|
|
) => {};
|
|
|
|
foo(
|
|
bar,
|
|
baz
|
|
);
|
|
```
|
|
|
|
Examples of **correct** code for this rule with the `"never"` option:
|
|
|
|
```js
|
|
/* eslint function-paren-newline: ["error", "never"] */
|
|
|
|
function foo(bar, baz) {}
|
|
|
|
function foo(bar,
|
|
baz) {}
|
|
|
|
var foo = function(bar, baz) {};
|
|
|
|
var foo = (bar, baz) => {};
|
|
|
|
foo(bar, baz);
|
|
|
|
foo(bar,
|
|
baz);
|
|
```
|
|
|
|
Examples of **incorrect** code for this rule with the default `"multiline"` option:
|
|
|
|
```js
|
|
/* eslint function-paren-newline: ["error", "multiline"] */
|
|
|
|
function foo(bar,
|
|
baz
|
|
) {}
|
|
|
|
var foo = function(
|
|
bar, baz
|
|
) {};
|
|
|
|
var foo = (
|
|
bar,
|
|
baz) => {};
|
|
|
|
foo(bar,
|
|
baz);
|
|
|
|
foo(
|
|
function() {
|
|
return baz;
|
|
}
|
|
);
|
|
```
|
|
|
|
Examples of **correct** code for this rule with the default `"multiline"` option:
|
|
|
|
```js
|
|
/* eslint function-paren-newline: ["error", "multiline"] */
|
|
|
|
function foo(bar, baz) {}
|
|
|
|
var foo = function(
|
|
bar,
|
|
baz
|
|
) {};
|
|
|
|
var foo = (bar, baz) => {};
|
|
|
|
foo(bar, baz, qux);
|
|
|
|
foo(
|
|
bar,
|
|
baz,
|
|
qux
|
|
);
|
|
|
|
foo(function() {
|
|
return baz;
|
|
});
|
|
```
|
|
|
|
Examples of **incorrect** code for this rule with the `"consistent"` option:
|
|
|
|
```js
|
|
/* eslint function-paren-newline: ["error", "consistent"] */
|
|
|
|
function foo(bar,
|
|
baz
|
|
) {}
|
|
|
|
var foo = function(bar,
|
|
baz
|
|
) {};
|
|
|
|
var foo = (
|
|
bar,
|
|
baz) => {};
|
|
|
|
foo(
|
|
bar,
|
|
baz);
|
|
|
|
foo(
|
|
function() {
|
|
return baz;
|
|
});
|
|
```
|
|
|
|
Examples of **correct** code for this rule with the `"consistent"` option:
|
|
|
|
```js
|
|
/* eslint function-paren-newline: ["error", "consistent"] */
|
|
|
|
function foo(bar,
|
|
baz) {}
|
|
|
|
var foo = function(bar, baz) {};
|
|
|
|
var foo = (
|
|
bar,
|
|
baz
|
|
) => {};
|
|
|
|
foo(
|
|
bar, baz
|
|
);
|
|
|
|
foo(
|
|
function() {
|
|
return baz;
|
|
}
|
|
);
|
|
```
|
|
|
|
Examples of **incorrect** code for this rule with the `"multiline-arguments"` option:
|
|
|
|
```js
|
|
/* eslint function-paren-newline: ["error", "multiline-arguments"] */
|
|
|
|
function foo(bar,
|
|
baz
|
|
) {}
|
|
|
|
var foo = function(bar,
|
|
baz
|
|
) {};
|
|
|
|
var foo = (
|
|
bar,
|
|
baz) => {};
|
|
|
|
foo(
|
|
bar,
|
|
baz);
|
|
|
|
foo(
|
|
bar, qux,
|
|
baz
|
|
);
|
|
```
|
|
|
|
Examples of **correct** code for this rule with the consistent `"multiline-arguments"` option:
|
|
|
|
```js
|
|
/* eslint function-paren-newline: ["error", "multiline-arguments"] */
|
|
|
|
function foo(
|
|
bar,
|
|
baz
|
|
) {}
|
|
|
|
var foo = function(bar, baz) {};
|
|
|
|
var foo = (
|
|
bar
|
|
) => {};
|
|
|
|
foo(
|
|
function() {
|
|
return baz;
|
|
}
|
|
);
|
|
```
|
|
|
|
Examples of **incorrect** code for this rule with the `{ "minItems": 3 }` option:
|
|
|
|
```js
|
|
/* eslint function-paren-newline: ["error", { "minItems": 3 }] */
|
|
|
|
function foo(
|
|
bar,
|
|
baz
|
|
) {}
|
|
|
|
function foo(bar, baz, qux) {}
|
|
|
|
var foo = function(
|
|
bar, baz
|
|
) {};
|
|
|
|
var foo = (bar,
|
|
baz) => {};
|
|
|
|
foo(bar,
|
|
baz);
|
|
```
|
|
|
|
Examples of **correct** code for this rule with the `{ "minItems": 3 }` option:
|
|
|
|
```js
|
|
/* eslint function-paren-newline: ["error", { "minItems": 3 }] */
|
|
|
|
function foo(bar, baz) {}
|
|
|
|
var foo = function(
|
|
bar,
|
|
baz,
|
|
qux
|
|
) {};
|
|
|
|
var foo = (
|
|
bar, baz, qux
|
|
) => {};
|
|
|
|
foo(bar, baz);
|
|
|
|
foo(
|
|
bar, baz, qux
|
|
);
|
|
```
|
|
|
|
## When Not To Use It
|
|
|
|
If don't want to enforce consistent linebreaks inside function parentheses, do not turn on this rule.
|