202 lines
6.3 KiB
YAML
202 lines
6.3 KiB
YAML
exclude: |
|
|
(?x)^(
|
|
.*thirdparty/.*|
|
|
.*-so_wrap\.(h|c)$
|
|
)
|
|
|
|
repos:
|
|
- repo: https://github.com/pre-commit/mirrors-clang-format
|
|
rev: v17.0.6
|
|
hooks:
|
|
- id: clang-format
|
|
files: \.(c|h|cpp|hpp|cc|cxx|m|mm|inc|java|glsl)$
|
|
types_or: [text]
|
|
exclude: |
|
|
(?x)^(
|
|
tests/python_build/.*|
|
|
platform/android/java/lib/src/com/.*
|
|
)
|
|
|
|
- repo: https://github.com/psf/black-pre-commit-mirror
|
|
rev: 24.2.0
|
|
hooks:
|
|
- id: black
|
|
files: (\.py$|SConstruct|SCsub)
|
|
types_or: [text]
|
|
|
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
rev: v0.971
|
|
hooks:
|
|
- id: mypy
|
|
files: \.py$
|
|
types_or: [text]
|
|
|
|
- repo: https://github.com/codespell-project/codespell
|
|
rev: v2.2.6
|
|
hooks:
|
|
- id: codespell
|
|
types_or: [text]
|
|
exclude: |
|
|
(?x)^(
|
|
.*\.desktop$|
|
|
.*\.gitignore$|
|
|
.*\.po$|
|
|
.*\.pot$|
|
|
.*\.rc$|
|
|
\.mailmap$|
|
|
AUTHORS.md$|
|
|
COPYRIGHT.txt$|
|
|
DONORS.md$|
|
|
core/input/gamecontrollerdb.txt$|
|
|
core/string/locales.h$|
|
|
editor/project_converter_3_to_4.cpp$|
|
|
platform/android/java/lib/src/com/.*|
|
|
platform/web/package-lock.json$
|
|
)
|
|
args:
|
|
- --enable-colors
|
|
- --write-changes
|
|
- --check-hidden
|
|
- --quiet-level
|
|
- '3'
|
|
- --ignore-words-list
|
|
- aesthetic,aesthetics,breaked,cancelled,colour,curvelinear,doubleclick,expct,findn,gird,hel,inout,lod,mis,nd,numer,ot,requestor,te,thirdparty,vai
|
|
- --builtin
|
|
- clear,rare,en-GB_to_en-US
|
|
|
|
### Requires Docker; look into alternative implementation.
|
|
# - repo: https://github.com/comkieffer/pre-commit-xmllint.git
|
|
# rev: 1.0.0
|
|
# hooks:
|
|
# - id: xmllint
|
|
# language: docker
|
|
# types_or: [text]
|
|
# files: ^(doc/classes|.*/doc_classes)/.*\.xml$
|
|
# args: [--schema, doc/class.xsd]
|
|
|
|
- repo: https://github.com/pre-commit/mirrors-eslint
|
|
rev: v8.46.0
|
|
hooks:
|
|
- id: eslint
|
|
name: eslint-engine
|
|
files: ^(platform/web/js/engine/|js/jsdoc2rst/).*\.js$
|
|
args: [--fix, --no-eslintrc, --config, platform/web/.eslintrc.engine.js]
|
|
additional_dependencies: &eslint-deps
|
|
- eslint@8.46.0
|
|
- eslint-config-airbnb-base@15.0.0
|
|
- eslint-plugin-import@2.28.0
|
|
- eslint-plugin-html@7.1.0
|
|
- '@html-eslint/eslint-plugin@0.19.1'
|
|
- '@html-eslint/parser@0.19.1'
|
|
- id: eslint
|
|
name: eslint-libs
|
|
files: ^(platform/web/js/libs/|modules/).*\.js$
|
|
args: [--fix, --no-eslintrc, --config, platform/web/.eslintrc.libs.js]
|
|
additional_dependencies: *eslint-deps
|
|
- id: eslint
|
|
name: eslint-sw
|
|
files: ^misc/dist/html/service-worker\.js$
|
|
args: [--fix, --no-eslintrc, --config, platform/web/.eslintrc.sw.js]
|
|
additional_dependencies: *eslint-deps
|
|
- id: eslint
|
|
name: eslint-html
|
|
files: ^misc/dist/html/.*\.html$
|
|
types: [html]
|
|
args: [--fix, --no-eslintrc, --config, platform/web/.eslintrc.html.js]
|
|
additional_dependencies: *eslint-deps
|
|
|
|
- repo: local
|
|
hooks:
|
|
- id: make-rst
|
|
name: make-rst
|
|
language: python
|
|
entry: python3 doc/tools/make_rst.py doc/classes modules platform --dry-run --color
|
|
pass_filenames: false
|
|
files: ^(doc/classes|.*/doc_classes)/.*\.xml$
|
|
|
|
- id: doc-status
|
|
name: doc-status
|
|
language: python
|
|
entry: python3 doc/tools/doc_status.py
|
|
files: ^(doc/classes|.*/doc_classes)/.*\.xml$
|
|
|
|
- id: jsdoc
|
|
name: jsdoc
|
|
language: node
|
|
entry: jsdoc
|
|
files: ^platform/web/js/engine/(engine|config|features)\.js$
|
|
args:
|
|
- --template
|
|
- platform/web/js/jsdoc2rst/
|
|
- platform/web/js/engine/engine.js
|
|
- platform/web/js/engine/config.js
|
|
- platform/web/js/engine/features.js
|
|
- --destination
|
|
- ''
|
|
- -d
|
|
- dry-run
|
|
pass_filenames: false
|
|
additional_dependencies: ['jsdoc@^4.0.3']
|
|
|
|
- id: copyright-headers
|
|
name: copyright-headers
|
|
language: python
|
|
entry: python3 misc/scripts/copyright_headers.py
|
|
files: \.(c|h|cpp|hpp|cc|cxx|m|mm|inc|java)$
|
|
exclude: |
|
|
(?x)^(
|
|
core/math/bvh_.*\.inc$|
|
|
platform/(?!android|ios|linuxbsd|macos|web|windows)\w+/.*|
|
|
platform/android/java/lib/src/com/.*|
|
|
platform/android/java/lib/src/org/godotengine/godot/gl/GLSurfaceView\.java$|
|
|
platform/android/java/lib/src/org/godotengine/godot/gl/EGLLogWrapper\.java$|
|
|
platform/android/java/lib/src/org/godotengine/godot/utils/ProcessPhoenix\.java$
|
|
)
|
|
|
|
- id: header-guards
|
|
name: header-guards
|
|
language: python
|
|
entry: python3 misc/scripts/header_guards.py
|
|
files: \.(h|hpp)$
|
|
exclude: |
|
|
(?x)^(
|
|
.*/thread\.h$|
|
|
.*/platform_config\.h$|
|
|
.*/platform_gl\.$h
|
|
)
|
|
|
|
- id: file-format
|
|
name: file-format
|
|
language: python
|
|
entry: python3 misc/scripts/file_format.py
|
|
types_or: [text]
|
|
exclude: |
|
|
(?x)^(
|
|
.*\.test\.txt$|
|
|
.*\.svg$|
|
|
.*\.patch$|
|
|
.*\.out$|
|
|
modules/gdscript/tests/scripts/parser/features/mixed_indentation_on_blank_lines\.gd$|
|
|
modules/gdscript/tests/scripts/parser/warnings/empty_file_newline_comment\.notest\.gd$|
|
|
modules/gdscript/tests/scripts/parser/warnings/empty_file_newline\.notest\.gd$|
|
|
platform/android/java/lib/src/com/google/.*
|
|
)
|
|
|
|
- id: dotnet-format
|
|
name: dotnet-format
|
|
language: python
|
|
entry: python3 misc/scripts/dotnet_format.py
|
|
types_or: [c#]
|
|
|
|
# End of upstream Godot pre-commit hooks.
|
|
#
|
|
# Keep this separation to let downstream forks add their own hooks to this file,
|
|
# without running into merge conflicts when rebasing on latest upstream.
|
|
#
|
|
# Start of downstream pre-commit hooks.
|
|
#
|
|
# This is still the "repo: local" scope, so new local hooks can be defined directly at this indentation:
|
|
# - id: new-local-hook
|
|
# To add external repo hooks, bring the indentation back to:
|
|
# - repo: my-remote-hook
|