summaryrefslogtreecommitdiffstats
path: root/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts
diff options
context:
space:
mode:
Diffstat (limited to 'dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts')
-rw-r--r--dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/index.js6
-rw-r--r--dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/package.json8
-rw-r--r--dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/tabs-anywhere.js29
-rw-r--r--dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/trailing-space-anywhere.js29
4 files changed, 72 insertions, 0 deletions
diff --git a/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/index.js b/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/index.js
new file mode 100644
index 0000000000..1f5bb211aa
--- /dev/null
+++ b/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/index.js
@@ -0,0 +1,6 @@
+module.exports = {
+ rules: {
+ 'string-trailing-space': require('./trailing-space-anywhere'),
+ 'string-tabs': require('./tabs-anywhere'),
+ },
+};
diff --git a/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/package.json b/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/package.json
new file mode 100644
index 0000000000..5685ebfa3c
--- /dev/null
+++ b/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "eslint-plugin-gpuweb-cts",
+ "version": "0.0.0",
+ "author": "WebGPU CTS Contributors",
+ "private": true,
+ "license": "BSD-3-Clause",
+ "main": "index.js"
+}
diff --git a/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/tabs-anywhere.js b/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/tabs-anywhere.js
new file mode 100644
index 0000000000..82238f8615
--- /dev/null
+++ b/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/tabs-anywhere.js
@@ -0,0 +1,29 @@
+module.exports = {
+ meta: {
+ type: 'suggestion',
+ docs: {
+ description: 'Indentation tabs are not allowed, even in multiline strings, due to WPT lint rules. This rule simply disallows tabs anywhere.',
+ },
+ schema: [],
+ },
+ create: context => {
+ const sourceCode = context.getSourceCode();
+
+ return {
+ Program: node => {
+ for (let lineIdx = 0; lineIdx < sourceCode.lines.length; ++lineIdx) {
+ const line = sourceCode.lines[lineIdx];
+ const matches = line.matchAll(/\t/g);
+ for (const match of matches) {
+ context.report({
+ node,
+ loc: { line: lineIdx + 1, column: match.index },
+ message: 'Tabs not allowed.',
+ // fixer is hard to implement, so not implemented.
+ });
+ }
+ }
+ },
+ };
+ },
+};
diff --git a/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/trailing-space-anywhere.js b/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/trailing-space-anywhere.js
new file mode 100644
index 0000000000..811b379ff6
--- /dev/null
+++ b/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/trailing-space-anywhere.js
@@ -0,0 +1,29 @@
+module.exports = {
+ meta: {
+ type: 'suggestion',
+ docs: {
+ description: 'Trailing spaces are not allowed, even in multiline strings, due to WPT lint rules.',
+ },
+ schema: [],
+ },
+ create: context => {
+ const sourceCode = context.getSourceCode();
+
+ return {
+ Program: node => {
+ for (let lineIdx = 0; lineIdx < sourceCode.lines.length; ++lineIdx) {
+ const line = sourceCode.lines[lineIdx];
+ const match = /\s+$/.exec(line);
+ if (match) {
+ context.report({
+ node,
+ loc: { line: lineIdx + 1, column: match.index },
+ message: 'Trailing spaces not allowed.',
+ // fixer is hard to implement, so not implemented.
+ });
+ }
+ }
+ },
+ };
+ },
+};