summaryrefslogtreecommitdiffstats
path: root/.pre-commit-config.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.pre-commit-config.yaml')
-rw-r--r--.pre-commit-config.yaml151
1 files changed, 137 insertions, 14 deletions
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 7122363f77..5c0c0b6917 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,3 +1,9 @@
+exclude: |
+ (?x)^(
+ .*thirdparty/.*|
+ .*-so_wrap\.(h|c)$
+ )
+
repos:
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v17.0.6
@@ -7,10 +13,8 @@ repos:
types_or: [text]
exclude: |
(?x)^(
- tests/python_build.*|
- .*thirdparty.*|
- .*platform/android/java/lib/src/com.*|
- .*-so_wrap.*
+ tests/python_build/.*|
+ platform/android/java/lib/src/com/.*
)
- repo: https://github.com/psf/black-pre-commit-mirror
@@ -19,33 +23,152 @@ repos:
- id: black
files: (\.py$|SConstruct|SCsub)
types_or: [text]
- exclude: .*thirdparty.*
+
+ - 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:
- - --line-length=120
+ - --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
- files: ^(doc|modules|platform).*xml$
+ 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/, --destination, '', -d, dry-run]
+ additional_dependencies: ["jsdoc@4.0.2"]
- id: copyright-headers
name: copyright-headers
language: python
- files: \.(c|h|cpp|hpp|cc|cxx|m|mm|inc|java)$
entry: python3 misc/scripts/copyright_headers.py
+ files: \.(c|h|cpp|hpp|cc|cxx|m|mm|inc|java)$
exclude: |
(?x)^(
- .*thirdparty.*|
- .*-so_wrap.*|
core/math/bvh_.*\.inc$|
- platform/android/java/lib/src/com.*|
- platform/android/java/lib/src/org/godotengine/godot/gl/GLSurfaceView.*|
- platform/android/java/lib/src/org/godotengine/godot/gl/EGLLogWrapper.*|
- platform/android/java/lib/src/org/godotengine/godot/utils/ProcessPhoenix.*
+ 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