diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 30afb592..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": [ - "./lint/eslintrc-gjs.json", - "./lint/eslintrc-shell.json" - ] -} diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 00000000..5e3347d3 --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,3 @@ +extends: + - ./lint/eslintrc-gjs.yml + - ./lint/eslintrc-shell.yml diff --git a/lint/eslintrc-gjs.json b/lint/eslintrc-gjs.json deleted file mode 100644 index 74cadf26..00000000 --- a/lint/eslintrc-gjs.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "env": { - "es6": true - }, - "extends": "eslint:recommended", - "rules": { - "array-bracket-newline": [ - "error", - "consistent" - ], - "array-bracket-spacing": [ - "error", - "never" - ], - "arrow-spacing": "error", - "brace-style": "error", - "comma-spacing": [ - "error", - { - "before": false, - "after": true - } - ], - "indent": [ - "error", - 4, - { - "ignoredNodes": [ - "CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child" - ], - "MemberExpression": "off" - } - ], - "key-spacing": [ - "error", - { - "beforeColon": false, - "afterColon": true - } - ], - "keyword-spacing": [ - "error", - { - "before": true, - "after": true - } - ], - "linebreak-style": [ - "error", - "unix" - ], - "no-empty": [ - "error", - { - "allowEmptyCatch": true - } - ], - "no-implicit-coercion": [ - "error", - { - "allow": ["!!"] - } - ], - "no-restricted-properties": [ - "error", - { - "object": "Lang", - "property": "bind", - "message": "Use arrow notation or Function.prototype.bind()" - }, - { - "object": "Lang", - "property": "Class", - "message": "Use ES6 classes" - } - ], - "nonblock-statement-body-position": [ - "error", - "below" - ], - "object-curly-newline": [ - "error", - { - "consistent": true - } - ], - "object-curly-spacing": "error", - "prefer-template": "error", - "quotes": [ - "error", - "single", - { - "avoidEscape": true - } - ], - "semi": [ - "error", - "always" - ], - "semi-spacing": [ - "error", - { - "before": false, - "after": true - } - ], - "space-before-blocks": "error", - "space-infix-ops": [ - "error", - { - "int32Hint": false - } - ] - }, - "globals": { - "ARGV": false, - "Debugger": false, - "GIRepositoryGType": false, - "imports": false, - "Intl": false, - "log": false, - "logError": false, - "print": false, - "printerr": false, - "window": false - }, - "parserOptions": { - "ecmaVersion": 2017 - } -} diff --git a/lint/eslintrc-gjs.yml b/lint/eslintrc-gjs.yml new file mode 100644 index 00000000..50da632d --- /dev/null +++ b/lint/eslintrc-gjs.yml @@ -0,0 +1,88 @@ +--- +env: + es6: true +extends: 'eslint:recommended' +rules: + array-bracket-newline: + - error + - consistent + array-bracket-spacing: + - error + - never + arrow-spacing: error + brace-style: error + comma-spacing: + - error + - before: false + after: true + indent: + - error + - 4 + - ignoredNodes: + # Allow not indenting the body of GObject.registerClass, since in the + # future it's intended to be a decorator + - 'CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child' + # Allow dedenting chained member expressions + MemberExpression: 'off' + key-spacing: + - error + - beforeColon: false + afterColon: true + keyword-spacing: + - error + - before: true + after: true + linebreak-style: + - error + - unix + no-empty: + - error + - allowEmptyCatch: true + no-implicit-coercion: + - error + - allow: + - '!!' + no-restricted-properties: + - error + - object: Lang + property: bind + message: Use arrow notation or Function.prototype.bind() + - object: Lang + property: Class + message: Use ES6 classes + nonblock-statement-body-position: + - error + - below + object-curly-newline: + - error + - consistent: true + object-curly-spacing: error + prefer-template: error + quotes: + - error + - single + - avoidEscape: true + semi: + - error + - always + semi-spacing: + - error + - before: false + after: true + space-before-blocks: error + space-infix-ops: + - error + - int32Hint: false +globals: + ARGV: readonly + Debugger: readonly + GIRepositoryGType: readonly + imports: readonly + Intl: readonly + log: readonly + logError: readonly + print: readonly + printerr: readonly + window: readonly +parserOptions: + ecmaVersion: 2017 diff --git a/lint/eslintrc-shell.json b/lint/eslintrc-shell.json deleted file mode 100644 index c7be5981..00000000 --- a/lint/eslintrc-shell.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "rules": { - "camelcase": [ - "error", - { - "properties": "never", - "allow": ["^vfunc_", "^on_"] - } - ], - "no-unused-vars": [ - "error", - { - "argsIgnorePattern": "^_", - "varsIgnorePattern": "_$" - } - ], - "object-curly-spacing": [ - "error", - "always" - ], - "prefer-arrow-callback": "error" - }, - "globals": { - "global": false - } -} diff --git a/lint/eslintrc-shell.yml b/lint/eslintrc-shell.yml new file mode 100644 index 00000000..2e690032 --- /dev/null +++ b/lint/eslintrc-shell.yml @@ -0,0 +1,15 @@ +rules: + camelcase: + - error + - properties: never + allow: [^vfunc_, ^on_] + no-unused-vars: + - error + - argsIgnorePattern: ^_ + varsIgnorePattern: _$ + object-curly-spacing: + - error + - always + prefer-arrow-callback: error +globals: + global: readonly