linter-bundle 5.0.1 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.linter-bundle.js +4 -0
- package/.linter-bundle.schema.json +125 -0
- package/CHANGELOG.md +79 -3
- package/README.md +5 -3
- package/TODO.md +10 -0
- package/eslint/index.cjs +6 -3
- package/eslint/overrides-javascript.cjs +1 -1
- package/eslint/overrides-jest.cjs +1 -0
- package/eslint/overrides-jsdoc.cjs +1 -0
- package/eslint/rules/no-global-undefined-check.js +5 -3
- package/eslint/rules/no-unnecessary-typeof.js +26 -24
- package/eslint/rules/restricted-filenames.js +3 -1
- package/helper/ensure-type.cjs +2 -2
- package/helper/get-git-files.js +1 -1
- package/helper/get-outdated-dependencies.js +1 -1
- package/helper/get-outdated-overrides.js +1 -1
- package/helper/get-stylelint-path.js +1 -1
- package/helper/is-npm-or-yarn.js +1 -1
- package/helper/linter-bundle-config.d.ts +7 -7
- package/helper/linter-bundle-config.js +28 -6
- package/helper/run-process.js +3 -3
- package/lint.js +31 -35
- package/package.json +27 -26
- package/stylelint/index.cjs +89 -5
- package/stylelint/plugins/stylelint-15.11.0-stylistic/LICENSE +20 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/html-tags/LICENSE +9 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/html-tags/index.cjs +122 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/reference/selectors.cjs +327 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-case/README.md +110 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-case/index.cjs +66 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-space-after/README.md +117 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-space-after/index.cjs +55 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-newline-after/README.md +63 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-newline-after/index.cjs +87 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-space-before/README.md +50 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-space-before/index.cjs +70 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/atRuleNameSpaceChecker.cjs +56 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-empty-line-before/README.md +238 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-empty-line-before/index.cjs +130 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-after/README.md +196 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-after/index.cjs +154 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-before/README.md +93 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-before/index.cjs +133 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-space-before/README.md +174 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-space-before/index.cjs +111 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-newline-after/README.md +138 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-newline-after/index.cjs +184 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-after/README.md +191 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-after/index.cjs +118 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-before/README.md +218 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-before/index.cjs +141 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/color-hex-case/README.md +58 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/color-hex-case/index.cjs +95 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-after/README.md +72 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-after/index.cjs +95 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-before/README.md +67 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-before/index.cjs +96 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-after/README.md +141 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-after/index.cjs +109 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-before/README.md +120 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-before/index.cjs +75 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-after/README.md +147 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-after/index.cjs +97 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-before/README.md +130 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-before/index.cjs +106 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-trailing-semicolon/README.md +108 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-trailing-semicolon/index.cjs +147 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-newline-after/README.md +78 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-newline-after/index.cjs +99 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-after/README.md +111 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-after/index.cjs +75 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-before/README.md +72 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-before/index.cjs +74 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declarationBangSpaceChecker.cjs +63 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declarationColonSpaceChecker.cjs +58 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/findMediaOperator.cjs +32 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-after/README.md +113 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-after/index.cjs +61 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-before/README.md +129 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-before/index.cjs +61 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-after/README.md +144 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-after/index.cjs +62 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-before/README.md +144 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-before/index.cjs +62 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-max-empty-lines/README.md +78 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-max-empty-lines/index.cjs +115 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-newline-inside/README.md +144 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-newline-inside/index.cjs +282 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-space-inside/README.md +140 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-space-inside/index.cjs +182 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-whitespace-after/README.md +80 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-whitespace-after/index.cjs +198 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/functionCommaSpaceChecker.cjs +125 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/functionCommaSpaceFix.cjs +51 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/indentation/README.md +339 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/indentation/index.cjs +743 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/linebreaks/README.md +21 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/linebreaks/index.cjs +132 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-empty-lines/README.md +116 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-empty-lines/index.cjs +225 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-line-length/README.md +151 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-line-length/index.cjs +200 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-after/README.md +72 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-after/index.cjs +91 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-before/README.md +72 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-before/index.cjs +91 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-name-case/README.md +108 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-name-case/index.cjs +93 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-parentheses-space-inside/README.md +62 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-parentheses-space-inside/index.cjs +112 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-after/README.md +72 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-after/index.cjs +109 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-before/README.md +72 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-before/index.cjs +109 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-after/README.md +113 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-after/index.cjs +97 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-before/README.md +111 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-before/index.cjs +49 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-after/README.md +136 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-after/index.cjs +93 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-before/README.md +136 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-before/index.cjs +93 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/mediaFeatureColonSpaceChecker.cjs +54 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/mediaQueryListCommaWhitespaceChecker.cjs +73 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-empty-first-line/README.md +34 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-empty-first-line/index.cjs +63 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-eol-whitespace/README.md +79 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-eol-whitespace/index.cjs +302 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-extra-semicolons/README.md +78 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-extra-semicolons/index.cjs +246 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-missing-end-of-source-newline/README.md +34 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-missing-end-of-source-newline/index.cjs +62 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-leading-zero/README.md +74 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-leading-zero/index.cjs +197 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-no-trailing-zeros/README.md +40 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-no-trailing-zeros/index.cjs +139 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/property-case/README.md +192 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/property-case/index.cjs +95 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-brackets-space-inside/README.md +112 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-brackets-space-inside/index.cjs +214 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-after/README.md +162 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-after/index.cjs +109 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-before/README.md +162 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-before/index.cjs +88 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-after/README.md +78 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-after/index.cjs +67 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-before/README.md +78 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-before/index.cjs +67 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-descendant-combinator-no-non-space/README.md +40 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-descendant-combinator-no-non-space/index.cjs +95 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-after/README.md +120 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-after/index.cjs +126 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-before/README.md +112 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-before/index.cjs +101 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-after/README.md +110 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-after/index.cjs +92 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-before/README.md +110 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-before/index.cjs +92 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-max-empty-lines/README.md +103 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-max-empty-lines/index.cjs +74 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-case/README.md +108 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-case/index.cjs +104 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-parentheses-space-inside/README.md +62 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-parentheses-space-inside/index.cjs +162 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-element-case/README.md +128 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-element-case/index.cjs +90 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selectorAttributeOperatorSpaceChecker.cjs +95 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selectorCombinatorSpaceChecker.cjs +113 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selectorListCommaWhitespaceChecker.cjs +64 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/string-quotes/README.md +130 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/string-quotes/index.cjs +256 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unicode-bom/README.md +41 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unicode-bom/index.cjs +67 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unit-case/README.md +126 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unit-case/index.cjs +133 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-after/README.md +102 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-after/index.cjs +107 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-before/README.md +100 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-before/index.cjs +49 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-after/README.md +136 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-after/index.cjs +94 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-before/README.md +136 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-before/index.cjs +94 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-max-empty-lines/README.md +121 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-max-empty-lines/index.cjs +68 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/valueListCommaWhitespaceChecker.cjs +74 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/style-search/LICENSE +13 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/style-search/index.cjs +216 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/addEmptyLineAfter.cjs +30 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/hasEmptyBlock.cjs +14 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/nextNonCommentNode.cjs +21 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/removeEmptyLinesAfter.cjs +16 -0
- package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/whitespaceChecker.cjs +361 -0
- package/stylelint/plugins/stylelint-selector-no-empty.js +8 -8
- package/stylelint/plugins/stylelint-selector-tag-no-without-class.js +4 -4
- package/stylelint/plugins/stylelint-high-performance-animation.js +0 -276
- package/stylelint/plugins/stylelint-stylistic.js +0 -188
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# block-closing-brace-newline-before
|
|
2
|
+
|
|
3
|
+
Require a newline or disallow whitespace before the closing brace of blocks.
|
|
4
|
+
|
|
5
|
+
<!-- prettier-ignore -->
|
|
6
|
+
```css
|
|
7
|
+
a { color: pink;
|
|
8
|
+
}
|
|
9
|
+
/** ↑
|
|
10
|
+
* The newline before this brace */
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The [`fix` option](https://stylelint.io/user-guide/options/#fix) can automatically fix all of the problems reported by this rule.
|
|
14
|
+
|
|
15
|
+
## Options
|
|
16
|
+
|
|
17
|
+
`string`: `"always"|"always-multi-line"|"never-multi-line"`
|
|
18
|
+
|
|
19
|
+
### `"always"`
|
|
20
|
+
|
|
21
|
+
There _must always_ be a newline before the closing brace.
|
|
22
|
+
|
|
23
|
+
The following patterns are considered problems:
|
|
24
|
+
|
|
25
|
+
<!-- prettier-ignore -->
|
|
26
|
+
```css
|
|
27
|
+
a { color: pink;}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The following patterns are _not_ considered problems:
|
|
31
|
+
|
|
32
|
+
<!-- prettier-ignore -->
|
|
33
|
+
```css
|
|
34
|
+
a { color: pink;
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
<!-- prettier-ignore -->
|
|
39
|
+
```css
|
|
40
|
+
a {
|
|
41
|
+
color: pink;
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### `"always-multi-line"`
|
|
46
|
+
|
|
47
|
+
There _must always_ be a newline before the closing brace in multi-line blocks.
|
|
48
|
+
|
|
49
|
+
The following patterns are considered problems:
|
|
50
|
+
|
|
51
|
+
<!-- prettier-ignore -->
|
|
52
|
+
```css
|
|
53
|
+
a {
|
|
54
|
+
color: pink;}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The following patterns are _not_ considered problems:
|
|
58
|
+
|
|
59
|
+
<!-- prettier-ignore -->
|
|
60
|
+
```css
|
|
61
|
+
a { color: pink; }
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
<!-- prettier-ignore -->
|
|
65
|
+
```css
|
|
66
|
+
a { color: pink;
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### `"never-multi-line"`
|
|
71
|
+
|
|
72
|
+
There _must never_ be whitespace before the closing brace in multi-line blocks.
|
|
73
|
+
|
|
74
|
+
The following patterns are considered problems:
|
|
75
|
+
|
|
76
|
+
<!-- prettier-ignore -->
|
|
77
|
+
```css
|
|
78
|
+
a {
|
|
79
|
+
color: pink; }
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
The following patterns are _not_ considered problems:
|
|
83
|
+
|
|
84
|
+
<!-- prettier-ignore -->
|
|
85
|
+
```css
|
|
86
|
+
a { color: pink; }
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
<!-- prettier-ignore -->
|
|
90
|
+
```css
|
|
91
|
+
a {
|
|
92
|
+
color: pink;}
|
|
93
|
+
```
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/* eslint-disable -- We want to keep as much of the original code as possible */
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
|
|
4
|
+
const stylelint = require('stylelint');
|
|
5
|
+
const blockString = require('stylelint/lib/utils/blockString.cjs');
|
|
6
|
+
const hasBlock = require('stylelint/lib/utils/hasBlock.cjs');
|
|
7
|
+
const isSingleLineString = require('stylelint/lib/utils/isSingleLineString.cjs');
|
|
8
|
+
const report = require('stylelint/lib/utils/report.cjs');
|
|
9
|
+
const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
|
|
10
|
+
const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
|
|
11
|
+
|
|
12
|
+
const hasEmptyBlock = require('../../utils/hasEmptyBlock.cjs');
|
|
13
|
+
|
|
14
|
+
const ruleName = 'plugin/block-closing-brace-newline-before';
|
|
15
|
+
|
|
16
|
+
const messages = ruleMessages(ruleName, {
|
|
17
|
+
expectedBefore: 'Expected newline before "}"',
|
|
18
|
+
expectedBeforeMultiLine: 'Expected newline before "}" of a multi-line block',
|
|
19
|
+
rejectedBeforeMultiLine: 'Unexpected whitespace before "}" of a multi-line block'
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const meta = {
|
|
23
|
+
url: 'https://github.com/jens-duttke/linter-bundle/blob/main/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-before/README.md',
|
|
24
|
+
fixable: true
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/** @type {import('stylelint').Rule} */
|
|
28
|
+
const rule = (primary, _secondaryOptions, context) => (root, result) => {
|
|
29
|
+
const validOptions = validateOptions(result, ruleName, {
|
|
30
|
+
actual: primary,
|
|
31
|
+
possible: ['always', 'always-multi-line', 'never-multi-line']
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
if (!validOptions) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Check both kinds of statements: rules and at-rules
|
|
39
|
+
root.walkRules(check);
|
|
40
|
+
root.walkAtRules(check);
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @param {import('postcss').Rule | import('postcss').AtRule} statement
|
|
44
|
+
*/
|
|
45
|
+
function check (statement) {
|
|
46
|
+
// Return early if blockless or has empty block
|
|
47
|
+
if (!hasBlock(statement) || hasEmptyBlock(statement)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Ignore extra semicolon
|
|
52
|
+
const after = (statement.raws.after || '').replace(/;+/, '');
|
|
53
|
+
|
|
54
|
+
if (after === undefined) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const blockIsMultiLine = !isSingleLineString(blockString(statement));
|
|
59
|
+
const statementString = statement.toString();
|
|
60
|
+
|
|
61
|
+
let index = statementString.length - 2;
|
|
62
|
+
|
|
63
|
+
if (statementString[index - 1] === '\r') {
|
|
64
|
+
index -= 1;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// We're really just checking whether a
|
|
68
|
+
// newline *starts* the block's final space -- between
|
|
69
|
+
// the last declaration and the closing brace. We can
|
|
70
|
+
// ignore any other whitespace between them, because that
|
|
71
|
+
// will be checked by the indentation rule.
|
|
72
|
+
if (!after.startsWith('\n') && !after.startsWith('\r\n')) {
|
|
73
|
+
if (primary === 'always') {
|
|
74
|
+
complain(messages.expectedBefore);
|
|
75
|
+
}
|
|
76
|
+
else if (blockIsMultiLine && primary === 'always-multi-line') {
|
|
77
|
+
complain(messages.expectedBeforeMultiLine);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (after !== '' && blockIsMultiLine && primary === 'never-multi-line') {
|
|
82
|
+
complain(messages.rejectedBeforeMultiLine);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @param {string} message
|
|
87
|
+
*/
|
|
88
|
+
function complain (message) {
|
|
89
|
+
if (context.fix) {
|
|
90
|
+
const statementRaws = statement.raws;
|
|
91
|
+
|
|
92
|
+
if (typeof statementRaws.after !== 'string') { return; }
|
|
93
|
+
|
|
94
|
+
if (primary.startsWith('always')) {
|
|
95
|
+
const firstWhitespaceIndex = statementRaws.after.search(/\s/);
|
|
96
|
+
const newlineBefore =
|
|
97
|
+
firstWhitespaceIndex >= 0 ?
|
|
98
|
+
statementRaws.after.slice(0, firstWhitespaceIndex)
|
|
99
|
+
: statementRaws.after;
|
|
100
|
+
const newlineAfter =
|
|
101
|
+
firstWhitespaceIndex >= 0 ? statementRaws.after.slice(firstWhitespaceIndex) : '';
|
|
102
|
+
const newlineIndex = newlineAfter.search(/\r?\n/);
|
|
103
|
+
|
|
104
|
+
statementRaws.after =
|
|
105
|
+
newlineIndex >= 0 ?
|
|
106
|
+
newlineBefore + newlineAfter.slice(newlineIndex)
|
|
107
|
+
: newlineBefore + context.newline + newlineAfter;
|
|
108
|
+
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (primary === 'never-multi-line') {
|
|
113
|
+
statementRaws.after = statementRaws.after.replace(/\s/g, '');
|
|
114
|
+
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
report({
|
|
120
|
+
message,
|
|
121
|
+
result,
|
|
122
|
+
ruleName,
|
|
123
|
+
node: statement,
|
|
124
|
+
index
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
rule.ruleName = ruleName;
|
|
131
|
+
rule.messages = messages;
|
|
132
|
+
rule.meta = meta;
|
|
133
|
+
module.exports = stylelint.createPlugin(ruleName, rule);
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# block-closing-brace-space-before
|
|
2
|
+
|
|
3
|
+
Require a single space or disallow whitespace before the closing brace of blocks.
|
|
4
|
+
|
|
5
|
+
<!-- prettier-ignore -->
|
|
6
|
+
```css
|
|
7
|
+
a { color: pink; }
|
|
8
|
+
/** ↑
|
|
9
|
+
* The space before this brace */
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
The [`fix` option](https://stylelint.io/user-guide/options/#fix) can automatically fix all of the problems reported by this rule.
|
|
13
|
+
|
|
14
|
+
## Options
|
|
15
|
+
|
|
16
|
+
`string`: `"always"|"never"|"always-single-line"|"never-single-line"|"always-multi-line"|"never-multi-line"`
|
|
17
|
+
|
|
18
|
+
### `"always"`
|
|
19
|
+
|
|
20
|
+
There _must always_ be a single space before the closing brace.
|
|
21
|
+
|
|
22
|
+
The following patterns are considered problems:
|
|
23
|
+
|
|
24
|
+
<!-- prettier-ignore -->
|
|
25
|
+
```css
|
|
26
|
+
a { color: pink;}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
<!-- prettier-ignore -->
|
|
30
|
+
```css
|
|
31
|
+
a
|
|
32
|
+
{ color: pink;}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The following patterns are _not_ considered problems:
|
|
36
|
+
|
|
37
|
+
<!-- prettier-ignore -->
|
|
38
|
+
```css
|
|
39
|
+
a { color: pink; }
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
<!-- prettier-ignore -->
|
|
43
|
+
```css
|
|
44
|
+
a {
|
|
45
|
+
color: pink; }
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### `"never"`
|
|
49
|
+
|
|
50
|
+
There _must never_ be whitespace before the closing brace.
|
|
51
|
+
|
|
52
|
+
The following patterns are considered problems:
|
|
53
|
+
|
|
54
|
+
<!-- prettier-ignore -->
|
|
55
|
+
```css
|
|
56
|
+
a { color: pink; }
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
<!-- prettier-ignore -->
|
|
60
|
+
```css
|
|
61
|
+
a
|
|
62
|
+
{ color: pink; }
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The following patterns are _not_ considered problems:
|
|
66
|
+
|
|
67
|
+
<!-- prettier-ignore -->
|
|
68
|
+
```css
|
|
69
|
+
a{ color: pink;}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
<!-- prettier-ignore -->
|
|
73
|
+
```css
|
|
74
|
+
a{
|
|
75
|
+
color: pink;}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### `"always-single-line"`
|
|
79
|
+
|
|
80
|
+
There _must always_ be a single space before the closing brace in single-line blocks.
|
|
81
|
+
|
|
82
|
+
The following patterns are considered problems:
|
|
83
|
+
|
|
84
|
+
<!-- prettier-ignore -->
|
|
85
|
+
```css
|
|
86
|
+
a { color: pink;}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
The following patterns are _not_ considered problems:
|
|
90
|
+
|
|
91
|
+
<!-- prettier-ignore -->
|
|
92
|
+
```css
|
|
93
|
+
a { color: pink; }
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
<!-- prettier-ignore -->
|
|
97
|
+
```css
|
|
98
|
+
a {
|
|
99
|
+
color: pink;}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### `"never-single-line"`
|
|
103
|
+
|
|
104
|
+
There _must never_ be whitespace before the closing brace in single-line blocks.
|
|
105
|
+
|
|
106
|
+
The following patterns are considered problems:
|
|
107
|
+
|
|
108
|
+
<!-- prettier-ignore -->
|
|
109
|
+
```css
|
|
110
|
+
a { color: pink; }
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
The following patterns are _not_ considered problems:
|
|
114
|
+
|
|
115
|
+
<!-- prettier-ignore -->
|
|
116
|
+
```css
|
|
117
|
+
a { color: pink;}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
<!-- prettier-ignore -->
|
|
121
|
+
```css
|
|
122
|
+
a {
|
|
123
|
+
color: pink; }
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### `"always-multi-line"`
|
|
127
|
+
|
|
128
|
+
There _must always_ be a single space before the closing brace in multi-line blocks.
|
|
129
|
+
|
|
130
|
+
The following patterns are considered problems:
|
|
131
|
+
|
|
132
|
+
<!-- prettier-ignore -->
|
|
133
|
+
```css
|
|
134
|
+
a {
|
|
135
|
+
color: pink;}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
The following patterns are _not_ considered problems:
|
|
139
|
+
|
|
140
|
+
<!-- prettier-ignore -->
|
|
141
|
+
```css
|
|
142
|
+
a { color: pink;}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
<!-- prettier-ignore -->
|
|
146
|
+
```css
|
|
147
|
+
a {
|
|
148
|
+
color: pink; }
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### `"never-multi-line"`
|
|
152
|
+
|
|
153
|
+
There _must never_ be whitespace before the closing brace in multi-line blocks.
|
|
154
|
+
|
|
155
|
+
The following patterns are considered problems:
|
|
156
|
+
|
|
157
|
+
<!-- prettier-ignore -->
|
|
158
|
+
```css
|
|
159
|
+
a {
|
|
160
|
+
color: pink; }
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
The following patterns are _not_ considered problems:
|
|
164
|
+
|
|
165
|
+
<!-- prettier-ignore -->
|
|
166
|
+
```css
|
|
167
|
+
a { color: pink; }
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
<!-- prettier-ignore -->
|
|
171
|
+
```css
|
|
172
|
+
a {
|
|
173
|
+
color: pink;}
|
|
174
|
+
```
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/* eslint-disable -- We want to keep as much of the original code as possible */
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
|
|
4
|
+
const stylelint = require('stylelint');
|
|
5
|
+
const blockString = require('stylelint/lib/utils/blockString.cjs');
|
|
6
|
+
const hasBlock = require('stylelint/lib/utils/hasBlock.cjs');
|
|
7
|
+
const report = require('stylelint/lib/utils/report.cjs');
|
|
8
|
+
const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
|
|
9
|
+
const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
|
|
10
|
+
|
|
11
|
+
const hasEmptyBlock = require('../../utils/hasEmptyBlock.cjs');
|
|
12
|
+
const whitespaceChecker = require('../../utils/whitespaceChecker.cjs');
|
|
13
|
+
|
|
14
|
+
const ruleName = 'plugin/block-closing-brace-space-before';
|
|
15
|
+
|
|
16
|
+
const messages = ruleMessages(ruleName, {
|
|
17
|
+
expectedBefore: () => 'Expected single space before "}"',
|
|
18
|
+
rejectedBefore: () => 'Unexpected whitespace before "}"',
|
|
19
|
+
expectedBeforeSingleLine: () => 'Expected single space before "}" of a single-line block',
|
|
20
|
+
rejectedBeforeSingleLine: () => 'Unexpected whitespace before "}" of a single-line block',
|
|
21
|
+
expectedBeforeMultiLine: () => 'Expected single space before "}" of a multi-line block',
|
|
22
|
+
rejectedBeforeMultiLine: () => 'Unexpected whitespace before "}" of a multi-line block'
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const meta = {
|
|
26
|
+
url: 'https://github.com/jens-duttke/linter-bundle/blob/main/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-space-before/README.md',
|
|
27
|
+
fixable: true
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/** @type {import('stylelint').Rule} */
|
|
31
|
+
const rule = (primary, _secondaryOptions, context) => {
|
|
32
|
+
const checker = whitespaceChecker('space', primary, messages);
|
|
33
|
+
|
|
34
|
+
return (root, result) => {
|
|
35
|
+
const validOptions = validateOptions(result, ruleName, {
|
|
36
|
+
actual: primary,
|
|
37
|
+
possible: [
|
|
38
|
+
'always',
|
|
39
|
+
'never',
|
|
40
|
+
'always-single-line',
|
|
41
|
+
'never-single-line',
|
|
42
|
+
'always-multi-line',
|
|
43
|
+
'never-multi-line'
|
|
44
|
+
]
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
if (!validOptions) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Check both kinds of statement: rules and at-rules
|
|
52
|
+
root.walkRules(check);
|
|
53
|
+
root.walkAtRules(check);
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @param {import('postcss').Rule | import('postcss').AtRule} statement
|
|
57
|
+
*/
|
|
58
|
+
function check (statement) {
|
|
59
|
+
// Return early if blockless or has empty block
|
|
60
|
+
if (!hasBlock(statement) || hasEmptyBlock(statement)) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const source = blockString(statement);
|
|
65
|
+
const statementString = statement.toString();
|
|
66
|
+
|
|
67
|
+
let index = statementString.length - 2;
|
|
68
|
+
|
|
69
|
+
if (statementString[index - 1] === '\r') {
|
|
70
|
+
index -= 1;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
checker.before({
|
|
74
|
+
source,
|
|
75
|
+
index: source.length - 1,
|
|
76
|
+
err: (message) => {
|
|
77
|
+
if (context.fix) {
|
|
78
|
+
const statementRaws = statement.raws;
|
|
79
|
+
|
|
80
|
+
if (typeof statementRaws.after !== 'string') { return; }
|
|
81
|
+
|
|
82
|
+
if (primary.startsWith('always')) {
|
|
83
|
+
statementRaws.after = statementRaws.after.replace(/\s*$/, ' ');
|
|
84
|
+
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (primary.startsWith('never')) {
|
|
89
|
+
statementRaws.after = statementRaws.after.replace(/\s*$/, '');
|
|
90
|
+
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
report({
|
|
96
|
+
message,
|
|
97
|
+
node: statement,
|
|
98
|
+
index,
|
|
99
|
+
result,
|
|
100
|
+
ruleName
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
rule.ruleName = ruleName;
|
|
109
|
+
rule.messages = messages;
|
|
110
|
+
rule.meta = meta;
|
|
111
|
+
module.exports = stylelint.createPlugin(ruleName, rule);
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# block-opening-brace-newline-after
|
|
2
|
+
|
|
3
|
+
Require a newline after the opening brace of blocks.
|
|
4
|
+
|
|
5
|
+
<!-- prettier-ignore -->
|
|
6
|
+
```css
|
|
7
|
+
a {
|
|
8
|
+
↑ color: pink; }
|
|
9
|
+
/** ↑
|
|
10
|
+
* The newline after this brace */
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
This rule allows an end-of-line comment followed by a newline. For example,
|
|
14
|
+
|
|
15
|
+
<!-- prettier-ignore -->
|
|
16
|
+
```css
|
|
17
|
+
a { /* end-of-line comment */
|
|
18
|
+
color: pink;
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The [`fix` option](https://stylelint.io/user-guide/options/#fix) can automatically fix all of the problems reported by this rule.
|
|
23
|
+
|
|
24
|
+
## Options
|
|
25
|
+
|
|
26
|
+
`string`: `"always"|"always-multi-line"|"never-multi-line"`
|
|
27
|
+
|
|
28
|
+
### `"always"`
|
|
29
|
+
|
|
30
|
+
There _must always_ be a newline after the opening brace.
|
|
31
|
+
|
|
32
|
+
The following patterns are considered problems:
|
|
33
|
+
|
|
34
|
+
<!-- prettier-ignore -->
|
|
35
|
+
```css
|
|
36
|
+
a{ color: pink; }
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
<!-- prettier-ignore -->
|
|
40
|
+
```css
|
|
41
|
+
a{ color: pink;
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
<!-- prettier-ignore -->
|
|
46
|
+
```css
|
|
47
|
+
a{ /* end-of-line comment
|
|
48
|
+
with a newline */
|
|
49
|
+
color: pink;
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
The following patterns are _not_ considered problems:
|
|
54
|
+
|
|
55
|
+
<!-- prettier-ignore -->
|
|
56
|
+
```css
|
|
57
|
+
a {
|
|
58
|
+
color: pink; }
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
<!-- prettier-ignore -->
|
|
62
|
+
```css
|
|
63
|
+
a
|
|
64
|
+
{
|
|
65
|
+
color: pink; }
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
<!-- prettier-ignore -->
|
|
69
|
+
```css
|
|
70
|
+
a { /* end-of-line comment */
|
|
71
|
+
color: pink;
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### `"always-multi-line"`
|
|
76
|
+
|
|
77
|
+
There _must always_ be a newline after the opening brace in multi-line blocks.
|
|
78
|
+
|
|
79
|
+
The following patterns are considered problems:
|
|
80
|
+
|
|
81
|
+
<!-- prettier-ignore -->
|
|
82
|
+
```css
|
|
83
|
+
a{color: pink;
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
The following patterns are _not_ considered problems:
|
|
88
|
+
|
|
89
|
+
<!-- prettier-ignore -->
|
|
90
|
+
```css
|
|
91
|
+
a { color: pink; }
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
<!-- prettier-ignore -->
|
|
95
|
+
```css
|
|
96
|
+
a {
|
|
97
|
+
color: pink; }
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### `"never-multi-line"`
|
|
101
|
+
|
|
102
|
+
There _must never_ be whitespace after the opening brace in multi-line blocks.
|
|
103
|
+
|
|
104
|
+
The following patterns are considered problems:
|
|
105
|
+
|
|
106
|
+
<!-- prettier-ignore -->
|
|
107
|
+
```css
|
|
108
|
+
a { color: pink;
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
The following patterns are _not_ considered problems:
|
|
113
|
+
|
|
114
|
+
<!-- prettier-ignore -->
|
|
115
|
+
```css
|
|
116
|
+
a { color: pink; }
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
<!-- prettier-ignore -->
|
|
120
|
+
```css
|
|
121
|
+
a {color: pink;
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Optional secondary options
|
|
126
|
+
|
|
127
|
+
### `ignore: ["rules"]`
|
|
128
|
+
|
|
129
|
+
Ignore the opening brace of rules.
|
|
130
|
+
|
|
131
|
+
For example, with `"always"`:
|
|
132
|
+
|
|
133
|
+
The following pattern is _not_ considered a problem:
|
|
134
|
+
|
|
135
|
+
<!-- prettier-ignore -->
|
|
136
|
+
```css
|
|
137
|
+
a { color: pink; }
|
|
138
|
+
```
|