diff options
-rw-r--r-- | qutebrowser/javascript/.eslintignore | 5 | ||||
-rw-r--r-- | qutebrowser/javascript/.eslintrc.yaml | 7 | ||||
-rw-r--r-- | qutebrowser/javascript/caret.js | 2 | ||||
-rw-r--r-- | qutebrowser/javascript/eslint.config.js | 136 |
4 files changed, 144 insertions, 6 deletions
diff --git a/qutebrowser/javascript/.eslintignore b/qutebrowser/javascript/.eslintignore deleted file mode 100644 index 65143f360..000000000 --- a/qutebrowser/javascript/.eslintignore +++ /dev/null @@ -1,5 +0,0 @@ -# Upstream Mozilla's code -pac_utils.js -# Actually a jinja template so eslint chokes on the {{}} syntax. -greasemonkey_wrapper.js -global_wrapper.js diff --git a/qutebrowser/javascript/.eslintrc.yaml b/qutebrowser/javascript/.eslintrc.yaml index 566304c27..d64c26951 100644 --- a/qutebrowser/javascript/.eslintrc.yaml +++ b/qutebrowser/javascript/.eslintrc.yaml @@ -17,6 +17,13 @@ env: extends: "eslint:all" +#ignores: +# # Upstream Mozilla's code +# pac_utils.js +# # Actually a jinja template so eslint chokes on the {{}} syntax. +# greasemonkey_wrapper.js +# global_wrapper.js + rules: strict: ["error", "global"] one-var: "off" diff --git a/qutebrowser/javascript/caret.js b/qutebrowser/javascript/caret.js index 4aeefcdb9..9b4249b53 100644 --- a/qutebrowser/javascript/caret.js +++ b/qutebrowser/javascript/caret.js @@ -1290,7 +1290,7 @@ window._qutebrowser.caret = (function() { if (CaretBrowsing.isDebug) { console.debug(`caret: ${text}`); } - } + }; CaretBrowsing.init = function() { CaretBrowsing.isWindowFocused = document.hasFocus(); diff --git a/qutebrowser/javascript/eslint.config.js b/qutebrowser/javascript/eslint.config.js new file mode 100644 index 000000000..49105013e --- /dev/null +++ b/qutebrowser/javascript/eslint.config.js @@ -0,0 +1,136 @@ +// qutebrowser's way of using eslint is perhaps a bit untypical: We turn on *all* +// the checks eslint has to offer, and then selectively disable/reconfigure the +// ones which got in the way below. +// +// This makes eslint much stricter (which is good). However, it means you might +// run into a case where you totally disagree with what it says, because some +// check is not useful or desired for qutebrowser, but nobody did run into it +// yet. +// +// In those cases, it's absolutely okay to modify this config as part of your PR. +// See it as a way to fine-tune eslint rather than a rigid style guide. +const js = require("@eslint/js"); // eslint-disable-line no-undef +const globals = require("globals"); // eslint-disable-line no-undef +module.exports = [ // eslint-disable-line no-undef + js.configs.all, + { + "languageOptions": { + globals: { + ...globals.browser, + }, + }, + "ignores": [ + // Upstream Mozilla's code + "pac_utils.js", + // Actually a jinja template so eslint chokes on the {{}} syntax. + "greasemonkey_wrapper.js", + "global_wrapper.js", + ], + "rules": { + "strict": [ + "error", + "global", + ], + "one-var": "off", + "padded-blocks": [ + "error", + "never", + ], + "space-before-function-paren": [ + "error", + "never", + ], + "no-underscore-dangle": "off", + "camelcase": "off", + "require-jsdoc": "off", + "func-style": [ + "error", + "declaration", + ], + "init-declarations": "off", + "no-plusplus": "off", + "no-extra-parens": "off", + "id-length": [ + "error", + { + "exceptions": [ + "i", + "n", + "k", + "v", + "x", + "y", + ], + }, + ], + "object-shorthand": "off", + "max-statements": [ + "error", + { + "max": 40, + }, + ], + "quotes": [ + "error", + "double", + { + "avoidEscape": true, + }, + ], + "object-property-newline": [ + "error", + { + "allowMultiplePropertiesPerLine": true, + }, + ], + "comma-dangle": [ + "error", + "always-multiline", + ], + "no-magic-numbers": "off", + "no-undefined": "off", + "wrap-iife": [ + "error", + "inside", + ], + "func-names": "off", + "sort-keys": "off", + "no-warning-comments": "off", + "max-len": [ + "error", + { + "ignoreUrls": true, + "code": 88, + }, + ], + "capitalized-comments": "off", + "prefer-destructuring": "off", + "line-comment-position": "off", + "no-inline-comments": "off", + "array-bracket-newline": "off", + "array-element-newline": "off", + "no-multi-spaces": [ + "error", + { + "ignoreEOLComments": true, + }, + ], + "function-paren-newline": "off", + "multiline-comment-style": "off", + "no-bitwise": "off", + "no-ternary": "off", + "max-lines": "off", + "multiline-ternary": [ + "error", + "always-multiline", + ], + "max-lines-per-function": "off", + "require-unicode-regexp": "off", + "max-params": "off", + "prefer-named-capture-group": "off", + "function-call-argument-newline": "off", + "no-negated-condition": "off", + "no-console": "off", + }, + }, +]; |