Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@
"@webref/css": "^8.5.6",
"c8": "^11.0.0",
"dedent": "^1.5.3",
"eslint": "^10.0.0",
"eslint": "^10.4.0",
"eslint-config-eslint": "^14.0.0",
"eslint-plugin-eslint-plugin": "^7.3.2",
"globals": "^17.0.0",
Expand Down
1 change: 1 addition & 0 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import rules from "./build/rules.js";
const plugin = {
meta: {
name: "@eslint/css",
namespace: "css",
version: "1.3.0", // x-release-please-version
},
languages: {
Expand Down
2 changes: 2 additions & 0 deletions src/rules/font-family-fallbacks.js
Original file line number Diff line number Diff line change
Expand Up @@ -117,10 +117,12 @@ function reportFontWithoutFallbacksInFontProperty(
export default {
meta: {
type: "suggestion",
languages: ["css/css"],

docs: {
description:
"Enforce use of fallback fonts and a generic font last",
dialects: ["CSS"],
recommended: true,
url: "https://github.com/eslint/css/blob/main/docs/rules/font-family-fallbacks.md",
},
Expand Down
2 changes: 2 additions & 0 deletions src/rules/no-duplicate-imports.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,14 @@ function getFixForImport(fixer, text, start, end, hasModifiers) {
export default {
meta: {
type: "problem",
languages: ["css/css"],

fixable: "code",
hasSuggestions: true,

docs: {
description: "Disallow duplicate @import rules",
dialects: ["CSS"],
recommended: true,
url: "https://github.com/eslint/css/blob/main/docs/rules/no-duplicate-imports.md",
},
Expand Down
2 changes: 2 additions & 0 deletions src/rules/no-duplicate-keyframe-selectors.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@
export default {
meta: {
type: "problem",
languages: ["css/css"],

docs: {
description: "Disallow duplicate selectors within keyframe blocks",
dialects: ["CSS"],
recommended: true,
url: "https://github.com/eslint/css/blob/main/docs/rules/no-duplicate-keyframe-selectors.md",
},
Expand Down
2 changes: 2 additions & 0 deletions src/rules/no-empty-blocks.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@
export default {
meta: {
type: "problem",
languages: ["css/css"],

docs: {
description: "Disallow empty blocks",
dialects: ["CSS"],
recommended: true,
url: "https://github.com/eslint/css/blob/main/docs/rules/no-empty-blocks.md",
},
Expand Down
2 changes: 2 additions & 0 deletions src/rules/no-important.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,13 @@ const trailingWhitespacePattern = /\s*$/u;
export default {
meta: {
type: "problem",
languages: ["css/css"],

hasSuggestions: true,

docs: {
description: "Disallow !important flags",
dialects: ["CSS"],
recommended: true,
url: "https://github.com/eslint/css/blob/main/docs/rules/no-important.md",
},
Expand Down
2 changes: 2 additions & 0 deletions src/rules/no-invalid-at-rule-placement.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@
export default {
meta: {
type: "problem",
languages: ["css/css"],

docs: {
description: "Disallow invalid placement of at-rules",
dialects: ["CSS"],
recommended: true,
url: "https://github.com/eslint/css/blob/main/docs/rules/no-invalid-at-rule-placement.md",
},
Expand Down
2 changes: 2 additions & 0 deletions src/rules/no-invalid-at-rules.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,13 @@ function extractMetaDataFromError(error) {
export default {
meta: {
type: "problem",
languages: ["css/css"],

fixable: "code",

docs: {
description: "Disallow invalid at-rules",
dialects: ["CSS"],
recommended: true,
url: "https://github.com/eslint/css/blob/main/docs/rules/no-invalid-at-rules.md",
},
Expand Down
2 changes: 2 additions & 0 deletions src/rules/no-invalid-named-grid-areas.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,11 @@ const validProps = new Set(["grid-template-areas", "grid-template", "grid"]);
export default {
meta: {
type: "problem",
languages: ["css/css"],

docs: {
description: "Disallow invalid named grid areas",
dialects: ["CSS"],
recommended: true,
url: "https://github.com/eslint/css/blob/main/docs/rules/no-invalid-named-grid-areas.md",
},
Expand Down
2 changes: 2 additions & 0 deletions src/rules/no-invalid-properties.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,11 @@ function getVarFallbackList(value) {
export default {
meta: {
type: "problem",
languages: ["css/css"],

docs: {
description: "Disallow invalid properties",
dialects: ["CSS"],
recommended: true,
url: "https://github.com/eslint/css/blob/main/docs/rules/no-invalid-properties.md",
},
Expand Down
2 changes: 2 additions & 0 deletions src/rules/no-unmatchable-selectors.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@
export default {
meta: {
type: "problem",
languages: ["css/css"],

docs: {
description: "Disallow unmatchable selectors",
dialects: ["CSS"],
recommended: true,
url: "https://github.com/eslint/css/blob/main/docs/rules/no-unmatchable-selectors.md",
},
Expand Down
2 changes: 2 additions & 0 deletions src/rules/prefer-logical-properties.js
Original file line number Diff line number Diff line change
Expand Up @@ -137,11 +137,13 @@ const unitReplacements = new Map([
export default {
meta: {
type: "problem",
languages: ["css/css"],

fixable: "code",

docs: {
description: "Enforce the use of logical properties",
dialects: ["CSS"],
url: "https://github.com/eslint/css/blob/main/docs/rules/prefer-logical-properties.md",
},

Expand Down
2 changes: 2 additions & 0 deletions src/rules/relative-font-units.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,11 @@ const disallowedFontSizeKeywords = new Set([
export default {
meta: {
type: "suggestion",
languages: ["css/css"],

docs: {
description: "Enforce the use of relative font units",
dialects: ["CSS"],
recommended: false,
url: "https://github.com/eslint/css/blob/main/docs/rules/relative-font-units.md",
},
Expand Down
2 changes: 2 additions & 0 deletions src/rules/selector-complexity.js
Original file line number Diff line number Diff line change
Expand Up @@ -156,9 +156,11 @@ function getDisallowedCombinatorsLocation(
export default {
meta: {
type: "problem",
languages: ["css/css"],

docs: {
description: "Disallow and limit CSS selectors",
dialects: ["CSS"],
recommended: false,
url: "https://github.com/eslint/css/blob/main/docs/rules/selector-complexity.md",
},
Expand Down
2 changes: 2 additions & 0 deletions src/rules/use-baseline.js
Original file line number Diff line number Diff line change
Expand Up @@ -487,9 +487,11 @@ class BaselineAvailability {
export default {
meta: {
type: "problem",
languages: ["css/css"],

docs: {
description: "Enforce the use of baseline features",
dialects: ["CSS"],
recommended: true,
url: "https://github.com/eslint/css/blob/main/docs/rules/use-baseline.md",
},
Expand Down
2 changes: 2 additions & 0 deletions src/rules/use-layers.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,11 @@
export default {
meta: {
type: "problem",
languages: ["css/css"],

docs: {
description: "Require use of layers",
dialects: ["CSS"],
url: "https://github.com/eslint/css/blob/main/docs/rules/use-layers.md",
},

Expand Down
28 changes: 28 additions & 0 deletions tests/plugin/eslint.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,34 @@ describe("Plugin", () => {
.map(([name]) => `css/${name}`);
assert.deepStrictEqual(actualRuleIds, expectedRuleIds);
});

it("rules should work when the plugin is registered under a custom namespace", async () => {
const eslint = new ESLint({
overrideConfigFile: true,
overrideConfig: {
files: ["**/*.css"],
plugins: {
eslintcss: css,
},
language: "eslintcss/css",
rules: {
"eslintcss/no-empty-blocks": "error",
},
},
});

const results = await eslint.lintText("a {}", {
filePath: "test.css",
});

assert.strictEqual(results.length, 1);
assert.strictEqual(results[0].messages.length, 1);
assert.strictEqual(
results[0].messages[0].ruleId,
"eslintcss/no-empty-blocks",
);
assert.strictEqual(results[0].messages[0].messageId, "emptyBlock");
});
});

describe("languageOptions", () => {
Expand Down
1 change: 1 addition & 0 deletions tests/types/types.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ import type {

css satisfies Plugin;
css.meta.name satisfies string;
css.meta.namespace satisfies string;
css.meta.version satisfies string;

// Check that these languages are defined:
Expand Down
Loading