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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy