From b877535dd433976451fe25485d97b12cf0e5611e Mon Sep 17 00:00:00 2001 From: Daniel Sheeler Date: Mon, 9 Sep 2024 04:51:44 -0500 Subject: [PATCH] Add linting configuration --- .editorconfig | 15 +++++++ .eslintrc.yml | 109 ++++++++++++++++++++++++++++++++++++++++++++++++ src/manager.js | 2 +- src/switcher.js | 5 +-- 4 files changed, 127 insertions(+), 4 deletions(-) create mode 100644 .editorconfig create mode 100644 .eslintrc.yml diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..68e05a8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.js] +quote_type = single \ No newline at end of file diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 0000000..9cfe52a --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,109 @@ +# SPDX-License-Identifier: CC0-1.0 +# SPDX-FileCopyrightText: No rights reserved + +env: + es2021: true +extends: 'eslint:recommended' +rules: + # See: https://eslint.org/docs/latest/rules/#possible-problems + array-callback-return: error + no-await-in-loop: error + no-constant-binary-expression: error + no-constructor-return: error + #no-duplicate-imports: error + no-new-native-nonconstructor: error + no-promise-executor-return: error + no-self-compare: error + no-template-curly-in-string: error + no-unmodified-loop-condition: error + no-unreachable-loop: error + no-unused-private-class-members: error + no-use-before-define: + - error + - functions: false + classes: true + variables: true + allowNamedExports: true + # See: https://eslint.org/docs/latest/rules/#suggestions + block-scoped-var: error + complexity: warn + consistent-return: error + default-param-last: error + eqeqeq: error + no-array-constructor: error + no-caller: error + no-extend-native: error + no-extra-bind: error + no-extra-label: error + no-iterator: error + no-label-var: error + no-loop-func: error + no-multi-assign: warn + no-new-object: error + no-new-wrappers: error + no-proto: error + no-shadow: warn + no-unused-vars: + - error + - varsIgnorePattern: ^_ + argsIgnorePattern: ^_ + no-var: warn + unicode-bom: error + # GJS Restrictions + no-restricted-globals: + - error + - name: Debugger + message: Internal use only + - name: GIRepositoryGType + message: Internal use only + - name: log + message: Use console.log() + - name: logError + message: Use console.warn() or console.error() + no-restricted-properties: + - error + - object: imports + property: format + message: Use template strings + - object: pkg + property: initFormat + message: Use template strings + - object: Lang + property: copyProperties + message: Use Object.assign() + - object: Lang + property: bind + message: Use arrow notation or Function.prototype.bind() + - object: Lang + property: Class + message: Use ES6 classes + no-restricted-syntax: + - error + - selector: >- + MethodDefinition[key.name="_init"] + CallExpression[arguments.length<=1][callee.object.type="Super"][callee.property.name="_init"] + message: Use constructor() and super() +# GJS Globals +globals: + ARGV: readonly + Debugger: readonly + GIRepositoryGType: readonly + globalThis: readonly + imports: readonly + Intl: readonly + log: readonly + logError: readonly + pkg: readonly + print: readonly + printerr: readonly + window: readonly + TextEncoder: readonly + TextDecoder: readonly + console: readonly + setTimeout: readonly + setInterval: readonly + clearTimeout: readonly + clearInterval: readonly +parserOptions: + ecmaVersion: 2022 + sourceType: module diff --git a/src/manager.js b/src/manager.js index 3705c3d..44ba422 100644 --- a/src/manager.js +++ b/src/manager.js @@ -181,7 +181,7 @@ export const Manager = class Manager { case 'switch-applications-backward': case 'coverflow-switch-applications': case 'coverflow-switch-applications-backward': - isApplicationSwitcher = !this.platform.getSettings().switch_application_behaves_like_switch_windows + isApplicationSwitcher = true;//!this.platform.getSettings().switch_application_behaves_like_switch_windows default: let currentOnly = this.platform.getSettings().current_workspace_only; if (currentOnly === 'all-currentfirst') { diff --git a/src/switcher.js b/src/switcher.js index 7226fd0..691d806 100644 --- a/src/switcher.js +++ b/src/switcher.js @@ -84,7 +84,6 @@ export class Switcher { this._iconFadeInOut = this._settings.icon_add_remove_effects === "Fade Only" || this._settings.icon_add_remove_effects === "Fade and Scale"; this._iconScaleUpDown = this._settings.icon_add_remove_effects === "Scale Only" || this._settings.icon_add_remove_effects === "Fade and Scale"; - log ( "fadeInOut", this._iconFadeInOut, "scaleUpDown", this._iconScaleUpDown); this._logger.log(`Creating Switcher`); this._logger.increaseIndent(); @@ -394,7 +393,7 @@ export class Switcher { } _showSubswitcher(direction) { - if (this._isAppSwitcher) { + if (this._isAppSwitcher && !this._settings.switch_application_behaves_like_switch_windows) { this._direction = direction; const length = this._windows.length; let from_index = Math.round(this._currentIndex); @@ -446,7 +445,7 @@ export class Switcher { } _updateSubSwitcher() { - if (this._isAppSwitcher) { + if (this._isAppSwitcher && !this._settings.switch_application_behaves_like_switch_windows) { let scale = 1, x = 0; let progress = 1; let to_index = this._toIndex;