-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
582 additions
and
432 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,273 +1,31 @@ | ||
--- | ||
# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later | ||
# SPDX-FileCopyrightText: 2018 Claudio André <[email protected]> | ||
env: | ||
es2021: true | ||
extends: "eslint:recommended" | ||
plugins: | ||
- jsdoc | ||
rules: | ||
array-bracket-newline: | ||
- error | ||
- consistent | ||
array-bracket-spacing: | ||
- error | ||
- never | ||
array-callback-return: error | ||
extends: # Imports upstream linting rules | ||
- ./lint/eslintrc-gjs.yml | ||
- ./lint/eslintrc-shell.yml | ||
parserOptions: | ||
sourceType: module | ||
rules: # Override some of the upstream rules to match this codebase | ||
arrow-parens: | ||
- error | ||
- as-needed | ||
arrow-spacing: error | ||
block-scoped-var: error | ||
block-spacing: error | ||
brace-style: error | ||
# Waiting for this to have matured a bit in eslint | ||
# camelcase: | ||
# - error | ||
# - properties: never | ||
# allow: [^vfunc_, ^on_, _instance_init] | ||
comma-dangle: | ||
- error | ||
- arrays: always-multiline | ||
objects: always-multiline | ||
functions: never | ||
comma-spacing: | ||
- error | ||
- before: false | ||
after: true | ||
comma-style: | ||
- error | ||
- last | ||
computed-property-spacing: error | ||
- always | ||
curly: | ||
- error | ||
- multi-or-nest | ||
- consistent | ||
dot-location: | ||
- all | ||
quotes: | ||
- error | ||
- double | ||
object-curly-spacing: | ||
- error | ||
- property | ||
eol-last: error | ||
eqeqeq: error | ||
func-call-spacing: error | ||
func-name-matching: error | ||
func-style: | ||
- always | ||
no-unused-vars: | ||
- error | ||
- declaration | ||
- allowArrowFunctions: true | ||
- vars: all | ||
args: none | ||
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" | ||
jsdoc/check-alignment: error | ||
jsdoc/check-param-names: error | ||
jsdoc/check-tag-names: error | ||
jsdoc/check-types: error | ||
jsdoc/implements-on-classes: error | ||
jsdoc/tag-lines: | ||
- error | ||
- any | ||
- startLines: 1 | ||
jsdoc/require-jsdoc: error | ||
jsdoc/require-param: error | ||
jsdoc/require-param-description: error | ||
jsdoc/require-param-name: error | ||
jsdoc/require-param-type: error | ||
key-spacing: | ||
- error | ||
- beforeColon: false | ||
afterColon: true | ||
keyword-spacing: | ||
- error | ||
- before: true | ||
after: true | ||
linebreak-style: | ||
- error | ||
- unix | ||
lines-between-class-members: | ||
- error | ||
- always | ||
- exceptAfterSingleLine: true | ||
max-nested-callbacks: error | ||
max-statements-per-line: error | ||
new-parens: error | ||
no-array-constructor: error | ||
no-await-in-loop: error | ||
no-caller: error | ||
no-constant-condition: | ||
- error | ||
- checkLoops: false | ||
no-div-regex: error | ||
no-empty: | ||
- error | ||
- allowEmptyCatch: true | ||
no-extra-bind: error | ||
no-extra-parens: | ||
- error | ||
- all | ||
- conditionalAssign: false | ||
nestedBinaryExpressions: false | ||
returnAssign: false | ||
no-implicit-coercion: | ||
- error | ||
- allow: | ||
- "!!" | ||
no-invalid-this: error | ||
no-iterator: error | ||
no-label-var: error | ||
no-lonely-if: error | ||
no-loop-func: error | ||
no-nested-ternary: error | ||
no-new-object: error | ||
no-new-wrappers: error | ||
no-octal-escape: error | ||
no-proto: error | ||
no-prototype-builtins: "off" | ||
no-restricted-globals: [error, window] | ||
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"] > | ||
FunctionExpression[params.length=1] > | ||
BlockStatement[body.length=1] | ||
CallExpression[arguments.length=1][callee.object.type="Super"][callee.property.name="_init"] > | ||
Identifier:first-child | ||
message: _init() that only calls super._init() is unnecessary | ||
- selector: >- | ||
MethodDefinition[key.name="_init"] > | ||
FunctionExpression[params.length=0] > | ||
BlockStatement[body.length=1] | ||
CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"] | ||
message: _init() that only calls super._init() is unnecessary | ||
- selector: BinaryExpression[operator="instanceof"][right.name="Array"] | ||
message: Use Array.isArray() | ||
no-return-assign: error | ||
no-return-await: error | ||
no-self-compare: error | ||
no-shadow: error | ||
no-shadow-restricted-names: error | ||
no-spaced-func: error | ||
no-tabs: error | ||
no-template-curly-in-string: error | ||
no-throw-literal: error | ||
no-trailing-spaces: error | ||
no-undef-init: error | ||
no-unneeded-ternary: error | ||
no-unused-expressions: error | ||
no-unused-vars: | ||
- error | ||
# Vars use a suffix _ instead of a prefix because of file-scope private vars | ||
- varsIgnorePattern: (^unused|_$) | ||
argsIgnorePattern: ^(unused|_) | ||
no-useless-call: error | ||
no-useless-computed-key: error | ||
no-useless-concat: error | ||
no-useless-constructor: error | ||
no-useless-rename: error | ||
no-useless-return: error | ||
no-whitespace-before-property: error | ||
no-with: error | ||
nonblock-statement-body-position: | ||
- error | ||
- below | ||
object-curly-newline: | ||
- error | ||
- consistent: true | ||
multiline: true | ||
object-curly-spacing: error | ||
object-shorthand: error | ||
operator-assignment: error | ||
operator-linebreak: error | ||
padded-blocks: | ||
- error | ||
- never | ||
# These may be a bit controversial, we can try them out and enable them later | ||
# prefer-const: error | ||
# prefer-destructuring: error | ||
prefer-numeric-literals: error | ||
prefer-promise-reject-errors: error | ||
prefer-rest-params: error | ||
prefer-spread: error | ||
prefer-template: error | ||
quotes: | ||
- error | ||
- single | ||
- avoidEscape: true | ||
require-await: error | ||
rest-spread-spacing: error | ||
semi: | ||
- error | ||
- always | ||
semi-spacing: | ||
- error | ||
- before: false | ||
after: true | ||
semi-style: error | ||
space-before-blocks: error | ||
space-before-function-paren: | ||
- error | ||
- named: never | ||
# for `function ()` and `async () =>`, preserve space around keywords | ||
anonymous: always | ||
asyncArrow: always | ||
space-in-parens: error | ||
space-infix-ops: | ||
- error | ||
- int32Hint: false | ||
space-unary-ops: error | ||
spaced-comment: error | ||
switch-colon-spacing: error | ||
symbol-description: error | ||
template-curly-spacing: error | ||
template-tag-spacing: error | ||
unicode-bom: error | ||
wrap-iife: | ||
- error | ||
- inside | ||
yield-star-spacing: error | ||
yoda: error | ||
settings: | ||
jsdoc: | ||
mode: typescript | ||
globals: | ||
ARGV: readonly | ||
Debugger: readonly | ||
GIRepositoryGType: readonly | ||
globalThis: readonly | ||
imports: readonly | ||
Intl: readonly | ||
log: readonly | ||
logError: readonly | ||
print: readonly | ||
printerr: readonly | ||
window: readonly | ||
TextEncoder: readonly | ||
TextDecoder: readonly | ||
console: readonly | ||
setTimeout: readonly | ||
setInterval: readonly | ||
clearTimeout: readonly | ||
clearInterval: readonly | ||
parserOptions: | ||
ecmaVersion: 2022 | ||
SwitchCase: 1 | ||
consistent-return: off | ||
no-await-in-loop: off |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
name: Lint codebase | ||
|
||
on: | ||
pull_request: | ||
branches: "**" | ||
push: | ||
branches: "**" | ||
|
||
jobs: | ||
lint: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Lint | ||
run: ./debug.sh -l |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,4 @@ | ||
*.compiled | ||
*.zip | ||
.vscode | ||
builds | ||
node_modules | ||
pnpm-lock.yaml | ||
builds |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.