Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f79ae9b

Browse files
authored
feat(eslint-plugin): add extension rule padding-line-between-statements (typescript-eslint#3418)
1 parent 780548c commit f79ae9b

File tree

7 files changed

+5927
-37
lines changed

7 files changed

+5927
-37
lines changed

packages/ast-spec/src/unions/LeftHandSideExpression.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import type { JSXFragment } from '../expression/JSXFragment/spec';
99
import type { MemberExpression } from '../expression/MemberExpression/spec';
1010
import type { MetaProperty } from '../expression/MetaProperty/spec';
1111
import type { ObjectExpression } from '../expression/ObjectExpression/spec';
12+
import type { SequenceExpression } from '../expression/spec';
1213
import type { Super } from '../expression/Super/spec';
1314
import type { TaggedTemplateExpression } from '../expression/TaggedTemplateExpression/spec';
1415
import type { ThisExpression } from '../expression/ThisExpression/spec';
@@ -34,6 +35,7 @@ export type LeftHandSideExpression =
3435
| MetaProperty
3536
| ObjectExpression
3637
| ObjectPattern
38+
| SequenceExpression
3739
| Super
3840
| TaggedTemplateExpression
3941
| ThisExpression

packages/eslint-plugin/README.md

Lines changed: 38 additions & 37 deletions
Large diffs are not rendered by default.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# require or disallow padding lines between statements (`padding-line-between-statements`)
2+
3+
## Rule Details
4+
5+
This rule extends the base [`eslint/padding-line-between-statements`](https://eslint.org/docs/rules/padding-line-between-statements) rule.
6+
7+
**It adds support for TypeScript constructs such as `interface` and `type`.**
8+
9+
## How to use
10+
11+
```jsonc
12+
{
13+
// note you must disable the base rule as it can report incorrect errors
14+
"padding-line-between-statements": "off",
15+
"@typescript-eslint/padding-line-between-statements": [
16+
"error",
17+
{
18+
"blankLine": "always",
19+
"prev": "var",
20+
"next": "return"
21+
}
22+
]
23+
}
24+
```
25+
26+
```jsonc
27+
{
28+
// Example - Add blank lines before interface and type definitions.
29+
// note you must disable the base rule as it can report incorrect errors
30+
"padding-line-between-statements": "off",
31+
"@typescript-eslint/padding-line-between-statements": [
32+
"error",
33+
{
34+
"blankLine": "always",
35+
"prev": "*",
36+
"next": ["interface", "type"]
37+
}
38+
]
39+
}
40+
```
41+
42+
## Options
43+
44+
See [`eslint/padding-line-between-statements` options](https://eslint.org/docs/rules/padding-line-between-statements#options).
45+
46+
**Note** - In addition to options provided by ESLint, we have also added options for `interface` and `type`.
47+
48+
<sup>Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/padding-line-between-statements.md)</sup>

packages/eslint-plugin/src/configs/all.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ export = {
116116
'@typescript-eslint/non-nullable-type-assertion-style': 'error',
117117
'object-curly-spacing': 'off',
118118
'@typescript-eslint/object-curly-spacing': 'error',
119+
'padding-line-between-statements': 'off',
120+
'@typescript-eslint/padding-line-between-statements': 'error',
119121
'@typescript-eslint/prefer-as-const': 'error',
120122
'@typescript-eslint/prefer-enum-initializers': 'error',
121123
'@typescript-eslint/prefer-for-of': 'error',

packages/eslint-plugin/src/rules/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ import noUselessConstructor from './no-useless-constructor';
8181
import noVarRequires from './no-var-requires';
8282
import nonNullableTypeAssertionStyle from './non-nullable-type-assertion-style';
8383
import objectCurlySpacing from './object-curly-spacing';
84+
import paddingLineBetweenStatements from './padding-line-between-statements';
8485
import preferAsConst from './prefer-as-const';
8586
import preferEnumInitializers from './prefer-enum-initializers';
8687
import preferForOf from './prefer-for-of';
@@ -200,6 +201,7 @@ export default {
200201
'no-var-requires': noVarRequires,
201202
'non-nullable-type-assertion-style': nonNullableTypeAssertionStyle,
202203
'object-curly-spacing': objectCurlySpacing,
204+
'padding-line-between-statements': paddingLineBetweenStatements,
203205
'prefer-as-const': preferAsConst,
204206
'prefer-enum-initializers': preferEnumInitializers,
205207
'prefer-for-of': preferForOf,

0 commit comments

Comments
 (0)