summaryrefslogtreecommitdiffstats
path: root/dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/tabs-anywhere.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/tabs-anywhere.js')
-rw-r--r--dom/webgpu/tests/cts/checkout/tools/eslint-plugin-gpuweb-cts/tabs-anywhere.js29
1 files changed, 29 insertions, 0 deletions
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.
+ });
+ }
+ }
+ },
+ };
+ },
+};