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

includes a (minimal) working wrapper Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
130 lines
3.5 KiB
Markdown
130 lines
3.5 KiB
Markdown
# Enforces spacing around commas (comma-spacing)
|
|
|
|
Spacing around commas improves readability of a list of items. Although most of the style guidelines for languages prescribe adding a space after a comma and not before it, it is subjective to the preferences of a project.
|
|
|
|
```js
|
|
var foo = 1, bar = 2;
|
|
var foo = 1 ,bar = 2;
|
|
```
|
|
|
|
## Rule Details
|
|
|
|
This rule enforces consistent spacing before and after commas in variable declarations, array literals, object literals, function parameters, and sequences.
|
|
|
|
This rule does not apply in an `ArrayExpression` or `ArrayPattern` in either of the following cases:
|
|
|
|
* adjacent null elements
|
|
* an initial null element, to avoid conflicts with the [`array-bracket-spacing`](array-bracket-spacing.md) rule
|
|
|
|
## Options
|
|
|
|
This rule has an object option:
|
|
|
|
* `"before": false` (default) disallows spaces before commas
|
|
* `"before": true` requires one or more spaces before commas
|
|
* `"after": true` (default) requires one or more spaces after commas
|
|
* `"after": false` disallows spaces after commas
|
|
|
|
### after
|
|
|
|
Examples of **incorrect** code for this rule with the default `{ "before": false, "after": true }` options:
|
|
|
|
```js
|
|
/*eslint comma-spacing: ["error", { "before": false, "after": true }]*/
|
|
|
|
var foo = 1 ,bar = 2;
|
|
var arr = [1 , 2];
|
|
var obj = {"foo": "bar" ,"baz": "qur"};
|
|
foo(a ,b);
|
|
new Foo(a ,b);
|
|
function foo(a ,b){}
|
|
a ,b
|
|
```
|
|
|
|
Examples of **correct** code for this rule with the default `{ "before": false, "after": true }` options:
|
|
|
|
```js
|
|
/*eslint comma-spacing: ["error", { "before": false, "after": true }]*/
|
|
|
|
var foo = 1, bar = 2
|
|
, baz = 3;
|
|
var arr = [1, 2];
|
|
var arr = [1,, 3]
|
|
var obj = {"foo": "bar", "baz": "qur"};
|
|
foo(a, b);
|
|
new Foo(a, b);
|
|
function foo(a, b){}
|
|
a, b
|
|
```
|
|
|
|
Example of **correct** code for this rule with initial null element for the default `{ "before": false, "after": true }` options:
|
|
|
|
```js
|
|
/*eslint comma-spacing: ["error", { "before": false, "after": true }]*/
|
|
/*eslint array-bracket-spacing: ["error", "always"]*/
|
|
|
|
var arr = [ , 2, 3 ]
|
|
```
|
|
|
|
### before
|
|
|
|
Examples of **incorrect** code for this rule with the `{ "before": true, "after": false }` options:
|
|
|
|
```js
|
|
/*eslint comma-spacing: ["error", { "before": true, "after": false }]*/
|
|
|
|
var foo = 1, bar = 2;
|
|
var arr = [1 , 2];
|
|
var obj = {"foo": "bar", "baz": "qur"};
|
|
new Foo(a,b);
|
|
function foo(a,b){}
|
|
a, b
|
|
```
|
|
|
|
Examples of **correct** code for this rule with the `{ "before": true, "after": false }` options:
|
|
|
|
```js
|
|
/*eslint comma-spacing: ["error", { "before": true, "after": false }]*/
|
|
|
|
var foo = 1 ,bar = 2 ,
|
|
baz = true;
|
|
var arr = [1 ,2];
|
|
var arr = [1 ,,3]
|
|
var obj = {"foo": "bar" ,"baz": "qur"};
|
|
foo(a ,b);
|
|
new Foo(a ,b);
|
|
function foo(a ,b){}
|
|
a ,b
|
|
```
|
|
|
|
Examples of **correct** code for this rule with initial null element for the `{ "before": true, "after": false }` options:
|
|
|
|
```js
|
|
/*eslint comma-spacing: ["error", { "before": true, "after": false }]*/
|
|
/*eslint array-bracket-spacing: ["error", "never"]*/
|
|
|
|
var arr = [,2 ,3]
|
|
```
|
|
|
|
## When Not To Use It
|
|
|
|
If your project will not be following a consistent comma-spacing pattern, turn this rule off.
|
|
|
|
|
|
## Further Reading
|
|
|
|
* [Javascript](http://javascript.crockford.com/code.html)
|
|
* [Dojo Style Guide](https://dojotoolkit.org/reference-guide/1.9/developer/styleguide.html)
|
|
|
|
|
|
## Related Rules
|
|
|
|
* [array-bracket-spacing](array-bracket-spacing.md)
|
|
* [comma-style](comma-style.md)
|
|
* [space-in-brackets](space-in-brackets.md) (deprecated)
|
|
* [space-in-parens](space-in-parens.md)
|
|
* [space-infix-ops](space-infix-ops.md)
|
|
* [space-after-keywords](space-after-keywords.md)
|
|
* [space-unary-ops](space-unary-ops.md)
|
|
* [space-return-throw-case](space-return-throw-case.md)
|