+++ /dev/null
-{
- "env": {
- "browser": true,
- "es2020": true
- },
- "parserOptions": {
- "sourceType": "module",
- "ecmaVersion": 2020
- },
- "extends": "eslint:recommended",
- "rules": {
- // Unsafe or confusing stuff that we forbid
-
- "no-unused-vars": ["error", { "vars": "all", "args": "none", "ignoreRestSiblings": true }],
- "no-constant-condition": ["error", { "checkLoops": false }],
- "no-var": "error",
- "no-useless-constructor": "error",
- "object-shorthand": ["error", "methods", { "avoidQuotes": true }],
- "prefer-arrow-callback": "error",
- "arrow-body-style": ["error", "as-needed", { "requireReturnForObjectLiteral": false } ],
- "arrow-parens": ["error", "as-needed", { "requireForBlockBody": true }],
- "arrow-spacing": ["error"],
- "no-confusing-arrow": ["error", { "allowParens": true }],
-
- // Enforced coding style
-
- "brace-style": ["error", "1tbs", { "allowSingleLine": true }],
- "indent": ["error", 4, { "SwitchCase": 1,
- "VariableDeclarator": "first",
- "FunctionDeclaration": { "parameters": "first" },
- "FunctionExpression": { "parameters": "first" },
- "CallExpression": { "arguments": "first" },
- "ArrayExpression": "first",
- "ObjectExpression": "first",
- "ImportDeclaration": "first",
- "ignoreComments": true }],
- "comma-spacing": ["error"],
- "comma-style": ["error"],
- "curly": ["error", "multi-line"],
- "func-call-spacing": ["error"],
- "func-names": ["error"],
- "func-style": ["error", "declaration", { "allowArrowFunctions": true }],
- "key-spacing": ["error"],
- "keyword-spacing": ["error"],
- "no-trailing-spaces": ["error"],
- "semi": ["error"],
- "space-before-blocks": ["error"],
- "space-before-function-paren": ["error", { "anonymous": "always",
- "named": "never",
- "asyncArrow": "always" }],
- "switch-colon-spacing": ["error"],
- "camelcase": ["error", { allow: ["^XK_", "^XF86XK_"] }],
- }
-}
--- /dev/null
+import globals from "globals";
+import js from "@eslint/js";
+
+export default [
+ js.configs.recommended,
+ {
+ languageOptions: {
+ ecmaVersion: 2020,
+ sourceType: "module",
+ globals: {
+ ...globals.browser,
+ ...globals.es2020,
+ }
+ },
+ ignores: ["**/xtscancodes.js"],
+ rules: {
+ // Unsafe or confusing stuff that we forbid
+
+ "no-unused-vars": ["error", { "vars": "all",
+ "args": "none",
+ "ignoreRestSiblings": true,
+ "caughtErrors": "none" }],
+ "no-constant-condition": ["error", { "checkLoops": false }],
+ "no-var": "error",
+ "no-useless-constructor": "error",
+ "object-shorthand": ["error", "methods", { "avoidQuotes": true }],
+ "prefer-arrow-callback": "error",
+ "arrow-body-style": ["error", "as-needed", { "requireReturnForObjectLiteral": false } ],
+ "arrow-parens": ["error", "as-needed", { "requireForBlockBody": true }],
+ "arrow-spacing": ["error"],
+ "no-confusing-arrow": ["error", { "allowParens": true }],
+
+ // Enforced coding style
+
+ "brace-style": ["error", "1tbs", { "allowSingleLine": true }],
+ "indent": ["error", 4, { "SwitchCase": 1,
+ "VariableDeclarator": "first",
+ "FunctionDeclaration": { "parameters": "first" },
+ "FunctionExpression": { "parameters": "first" },
+ "CallExpression": { "arguments": "first" },
+ "ArrayExpression": "first",
+ "ObjectExpression": "first",
+ "ImportDeclaration": "first",
+ "ignoreComments": true }],
+ "comma-spacing": ["error"],
+ "comma-style": ["error"],
+ "curly": ["error", "multi-line"],
+ "func-call-spacing": ["error"],
+ "func-names": ["error"],
+ "func-style": ["error", "declaration", { "allowArrowFunctions": true }],
+ "key-spacing": ["error"],
+ "keyword-spacing": ["error"],
+ "no-trailing-spaces": ["error"],
+ "semi": ["error"],
+ "space-before-blocks": ["error"],
+ "space-before-function-paren": ["error", { "anonymous": "always",
+ "named": "never",
+ "asyncArrow": "always" }],
+ "switch-colon-spacing": ["error"],
+ "camelcase": ["error", { "allow": ["^XK_", "^XF86XK_"] }],
+ }
+ },
+ {
+ files: ["po/po2js", "po/xgettext-html"],
+ languageOptions: {
+ globals: {
+ ...globals.node,
+ }
+ },
+ },
+ {
+ files: ["tests/*"],
+ languageOptions: {
+ globals: {
+ ...globals.node,
+ ...globals.mocha,
+ sinon: false,
+ chai: false,
+ }
+ },
+ rules: {
+ "prefer-arrow-callback": 0,
+ // Too many anonymous callbacks
+ "func-names": "off",
+ },
+ },
+ {
+ files: ["utils/*"],
+ languageOptions: {
+ globals: {
+ ...globals.node,
+ }
+ },
+ rules: {
+ "no-console": 0,
+ },
+ },
+];