Skip to content

Commit

Permalink
Add support for stylelint v16
Browse files Browse the repository at this point in the history
  • Loading branch information
ota-meshi committed Dec 12, 2023
1 parent 2580890 commit 3055fb3
Show file tree
Hide file tree
Showing 74 changed files with 5,414 additions and 370 deletions.
2 changes: 2 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ module.exports = {
rules: {
"require-jsdoc": "off",
"no-warning-comments": "warn",
"func-style": "off",
complexity: "off",
"spaced-comment": ["error", "always", { markers: ["/"] }],
},
globals: {
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/NodeCI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x, 14.x, 16.x, 18.x]
node-version: [12.x, 14.x, 16.x, 18.x, 20.x]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
Expand All @@ -38,8 +38,8 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
stylelint: ['14']
node-version: [18.x]
stylelint: ['14', '15']
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
Expand Down
10 changes: 5 additions & 5 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.fixAll.stylelint": false,
"source.fixAll.eslint": "explicit",
"source.fixAll.stylelint": "never"
},
"[stylus]": {
"editor.codeActionsOnSave": {
"source.fixAll.stylelint": false,
"source.fixAll.stylelint": "never"
}
},
"[vue]": {
"editor.codeActionsOnSave": {
"source.fixAll.stylelint": false,
"source.fixAll.eslint": false,
"source.fixAll.stylelint": "never",
"source.fixAll.eslint": "never"
}
},
"css.validate": false,
Expand Down
2 changes: 1 addition & 1 deletion docs/.vuepress/components/playground.vue
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ button {
const CONFIG_DEFAULT = `{
"plugins": ["stylelint-stylus"],
"extends": [
"stylelint-config-standard",
"stylelint-config-recommended",
"stylelint-stylus/standard"
]
}`;
Expand Down
2 changes: 1 addition & 1 deletion docs/stylelint.config.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use strict"

module.exports = {
extends: ["stylelint-config-standard", "stylelint-stylus/standard"],
extends: ["stylelint-config-recommended", "stylelint-stylus/standard"],
rules: {
"no-duplicate-selectors": null,
"selector-class-pattern": null,
Expand Down
2 changes: 1 addition & 1 deletion lib/rules/at-extend-style.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
const {
utils: { ruleMessages, validateOptions, report },
} = require("stylelint")
const hasBlock = require("stylelint/lib/utils/hasBlock")
const { inCssLiteral } = require("../utils/nodes")
const { hasBlock } = require("../utils/ast")

const ruleName = "stylus/at-extend-style"

Expand Down
2 changes: 1 addition & 1 deletion lib/rules/at-rule-empty-line-before.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/at-rule-empty-line-before")
const coreRule = require("../utils/stylelint-v15/rules/at-rule-empty-line-before")
const { wrap } = require("../utils/wrapper-rules/atrule-name-rules")
const ruleName = "stylus/at-rule-empty-line-before"

Expand Down
2 changes: 1 addition & 1 deletion lib/rules/at-rule-name-space-after.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/at-rule-name-space-after")
const coreRule = require("../utils/stylelint-v15/rules/at-rule-name-space-after")
const { wrap } = require("../utils/wrapper-rules/atrule-name-rules")
const ruleName = "stylus/at-rule-name-space-after"

Expand Down
9 changes: 5 additions & 4 deletions lib/rules/at-rule-no-unknown.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"use strict"

const coreRule = require("stylelint/lib/rules/at-rule-no-unknown")
const { loadCoreRule } = require("../utils/stylelint")
const coreRule = loadCoreRule("at-rule-no-unknown")
const { transformResult } = require("../utils/proxy")
const {
withWalkerIgnoresNonStandardAtRule,
Expand Down Expand Up @@ -32,13 +33,13 @@ const STYLUS_AT_NAMES = [
]

function rule(expectation, options, context) {
return (root, result) => {
return async (root, result) => {
let verify = null
if (root.source.lang !== "stylus") {
verify = coreRule(expectation, options, context)
verify = (await coreRule)(expectation, options, context)
} else {
const ignoreAtRules = (options && options.ignoreAtRules) || []
verify = coreRule(
verify = (await coreRule)(
expectation,
{
...(options || {}),
Expand Down
2 changes: 1 addition & 1 deletion lib/rules/block-closing-brace-empty-line-before.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/block-closing-brace-empty-line-before")
const coreRule = require("../utils/stylelint-v15/rules/block-closing-brace-empty-line-before")
const { wrap } = require("../utils/wrapper-rules/brace-rules")
const ruleName = "stylus/block-closing-brace-empty-line-before"

Expand Down
2 changes: 1 addition & 1 deletion lib/rules/block-closing-brace-newline-after.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/block-closing-brace-newline-after")
const coreRule = require("../utils/stylelint-v15/rules/block-closing-brace-newline-after")
const { wrap } = require("../utils/wrapper-rules/brace-rules")
const ruleName = "stylus/block-closing-brace-newline-after"

Expand Down
2 changes: 1 addition & 1 deletion lib/rules/block-closing-brace-newline-before.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/block-closing-brace-newline-before")
const coreRule = require("../utils/stylelint-v15/rules/block-closing-brace-newline-before")
const { wrap } = require("../utils/wrapper-rules/brace-rules")
const ruleName = "stylus/block-closing-brace-newline-before"

Expand Down
2 changes: 1 addition & 1 deletion lib/rules/block-closing-brace-space-after.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/block-closing-brace-space-after")
const coreRule = require("../utils/stylelint-v15/rules/block-closing-brace-space-after")
const { wrap } = require("../utils/wrapper-rules/brace-rules")
const ruleName = "stylus/block-closing-brace-space-after"

Expand Down
2 changes: 1 addition & 1 deletion lib/rules/block-closing-brace-space-before.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/block-closing-brace-space-before")
const coreRule = require("../utils/stylelint-v15/rules/block-closing-brace-space-before")
const { wrap } = require("../utils/wrapper-rules/brace-rules")
const ruleName = "stylus/block-closing-brace-space-before"

Expand Down
2 changes: 1 addition & 1 deletion lib/rules/block-opening-brace-newline-after.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/block-opening-brace-newline-after")
const coreRule = require("../utils/stylelint-v15/rules/block-opening-brace-newline-after")
const { wrap } = require("../utils/wrapper-rules/brace-rules")
const ruleName = "stylus/block-opening-brace-newline-after"

Expand Down
2 changes: 1 addition & 1 deletion lib/rules/block-opening-brace-space-after.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/block-opening-brace-space-after")
const coreRule = require("../utils/stylelint-v15/rules/block-opening-brace-space-after")
const { wrap } = require("../utils/wrapper-rules/brace-rules")
const { newProxy } = require("../utils/proxy")
const ruleName = "stylus/block-opening-brace-space-after"
Expand Down
2 changes: 1 addition & 1 deletion lib/rules/block-opening-brace-space-before.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/block-opening-brace-space-before")
const coreRule = require("../utils/stylelint-v15/rules/block-opening-brace-space-before")
const { wrap } = require("../utils/wrapper-rules/brace-rules")
const ruleName = "stylus/block-opening-brace-space-before"

Expand Down
2 changes: 1 addition & 1 deletion lib/rules/color-hex-case.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const {
utils: { ruleMessages, validateOptions, report },
} = require("stylelint")
const styleSearch = require("style-search")
const coreRule = require("stylelint/lib/rules/color-hex-case")
const coreRule = require("../utils/stylelint-v15/rules/color-hex-case")
const { transformResult } = require("../utils/proxy")
const { scopedTokens, isSkipToken } = require("../utils/tokens")

Expand Down
2 changes: 1 addition & 1 deletion lib/rules/indentation.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/indentation")
const coreRule = require("../utils/stylelint-v15/rules/indentation")
const { transformResult, newProxy } = require("../utils/proxy")

const ruleName = "stylus/indentation"
Expand Down
2 changes: 1 addition & 1 deletion lib/rules/no-at-require.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
const {
utils: { ruleMessages, validateOptions, report },
} = require("stylelint")
const hasBlock = require("stylelint/lib/utils/hasBlock")
const { inCssLiteral } = require("../utils/nodes")
const { hasBlock } = require("../utils/ast")

const ruleName = "stylus/no-at-require"

Expand Down
2 changes: 1 addition & 1 deletion lib/rules/no-eol-whitespace.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/no-eol-whitespace")
const coreRule = require("../utils/stylelint-v15/rules/no-eol-whitespace")
const { transformResult } = require("../utils/proxy")
const ruleName = "stylus/no-eol-whitespace"
const originalRuleName = "no-eol-whitespace"
Expand Down
2 changes: 1 addition & 1 deletion lib/rules/number-leading-zero.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/number-leading-zero")
const coreRule = require("../utils/stylelint-v15/rules/number-leading-zero")
const { wrap } = require("../utils/wrapper-rules/number-rules")
const ruleName = "stylus/number-leading-zero"

Expand Down
2 changes: 1 addition & 1 deletion lib/rules/number-no-trailing-zeros.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

const coreRule = require("stylelint/lib/rules/number-no-trailing-zeros")
const coreRule = require("../utils/stylelint-v15/rules/number-no-trailing-zeros")
const { wrap } = require("../utils/wrapper-rules/number-rules")
const ruleName = "stylus/number-no-trailing-zeros"

Expand Down
7 changes: 4 additions & 3 deletions lib/rules/property-no-unknown.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"use strict"

const coreRule = require("stylelint/lib/rules/property-no-unknown")
const { loadCoreRule } = require("../utils/stylelint")
const coreRule = loadCoreRule("property-no-unknown")
const { transformResult, newProxy } = require("../utils/proxy")
const { inCssLiteral, isObjectProperty } = require("../utils/nodes")

Expand All @@ -19,8 +20,8 @@ module.exports = {
}

function rule(expectation, options, context) {
const verify = coreRule(expectation, options, context)
return (root, result) => {
return async (root, result) => {
const verify = (await coreRule)(expectation, options, context)
if (root.source.lang !== "stylus") {
verify(
root,
Expand Down
2 changes: 1 addition & 1 deletion lib/rules/pythonic.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ const _ = require("lodash")
const {
utils: { ruleMessages, validateOptions, report },
} = require("stylelint")
const hasBlock = require("stylelint/lib/utils/hasBlock")
const { inCssLiteral } = require("../utils/nodes")
const { hasBlock } = require("../utils/ast")

const ruleName = "stylus/pythonic"

Expand Down
4 changes: 2 additions & 2 deletions lib/rules/selector-list-comma-newline-after.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
const {
utils: { ruleMessages, validateOptions, report },
} = require("stylelint")
const coreRule = require("stylelint/lib/rules/selector-list-comma-newline-after")
const coreRule = require("../utils/stylelint-v15/rules/selector-list-comma-newline-after")
const { transformResult } = require("../utils/proxy")
const { isLinebreak, isSkipToken } = require("../utils/tokens")
const {
getSelectorTokens,
isSelectorToken,
setSelector,
} = require("../utils/selector")
const { isSingleLineString } = require("../utils")
const { isSingleLineString } = require("../utils/text")

const ruleName = "stylus/selector-list-comma-newline-after"

Expand Down
4 changes: 2 additions & 2 deletions lib/rules/selector-list-comma-newline-before.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
const {
utils: { ruleMessages, validateOptions, report },
} = require("stylelint")
const coreRule = require("stylelint/lib/rules/selector-list-comma-newline-before")
const coreRule = require("../utils/stylelint-v15/rules/selector-list-comma-newline-before")
const { transformResult } = require("../utils/proxy")
const { isLinebreak, isSkipToken, isWhitespace } = require("../utils/tokens")
const { getSelectorTokens, setSelector } = require("../utils/selector")
const { isSingleLineString } = require("../utils")
const { isSingleLineString } = require("../utils/text")

const ruleName = "stylus/selector-list-comma-newline-before"

Expand Down
4 changes: 2 additions & 2 deletions lib/rules/selector-list-comma-space-after.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
const {
utils: { ruleMessages, validateOptions, report },
} = require("stylelint")
const coreRule = require("stylelint/lib/rules/selector-list-comma-space-after")
const coreRule = require("../utils/stylelint-v15/rules/selector-list-comma-space-after")
const { transformResult } = require("../utils/proxy")
const { isSkipToken, isWhitespace } = require("../utils/tokens")
const { getSelectorTokens, setSelector } = require("../utils/selector")
const { isSingleLineString } = require("../utils")
const { isSingleLineString } = require("../utils/text")

const ruleName = "stylus/selector-list-comma-space-after"

Expand Down
4 changes: 2 additions & 2 deletions lib/rules/selector-list-comma-space-before.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
const {
utils: { ruleMessages, validateOptions, report },
} = require("stylelint")
const coreRule = require("stylelint/lib/rules/selector-list-comma-space-before")
const coreRule = require("../utils/stylelint-v15/rules/selector-list-comma-space-before")
const { transformResult } = require("../utils/proxy")
const { isWhitespace } = require("../utils/tokens")
const { getSelectorTokens, setSelector } = require("../utils/selector")
const { isSingleLineString } = require("../utils")
const { isSingleLineString } = require("../utils/text")

const ruleName = "stylus/selector-list-comma-space-before"

Expand Down
6 changes: 3 additions & 3 deletions lib/rules/selector-pseudo-class-case.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
const {
utils: { ruleMessages, validateOptions, report },
} = require("stylelint")
const coreRule = require("stylelint/lib/rules/selector-pseudo-class-case")
const coreRule = require("../utils/stylelint-v15/rules/selector-pseudo-class-case")
const { transformResult } = require("../utils/proxy")
const { parseSelector } = require("../utils/selector")
const { selectors } = require("../utils/stylelint-internal")
const { levelOneAndTwoPseudoElements } = require("../utils/reference/selector")

const ruleName = "stylus/selector-pseudo-class-case"

Expand Down Expand Up @@ -78,7 +78,7 @@ function rule(expectation, options, context) {

if (
pseudo.includes("::") ||
selectors.levelOneAndTwoPseudoElements.has(
levelOneAndTwoPseudoElements.has(
pseudo.toLowerCase().slice(1),
)
) {
Expand Down
Loading

0 comments on commit 3055fb3

Please sign in to comment.