Skip to content
Open
Show file tree
Hide file tree
Changes from all 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.2.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 @@ -23,11 +23,13 @@
export default {
meta: {
type: "problem",
languages: ["css/css"],

fixable: "code",

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