godot/misc/hooks
Rémi Verschelde 561a6cd503
Style: Mark clang-format 16 as supported for pre-commit hook
It only introduced a difference in a .glsl file, which I've worked
around by removing an empty line. This keeps formatting consistent
between clang-format 15 and 16.

Also added a change in the 3-to-4 project converter to fix bogus
formatting in clang-format < 17.

(cherry picked from commit 49f4860ce3)
2024-01-30 14:42:46 +01:00
..
README.md Style: Mark clang-format 16 as supported for pre-commit hook 2024-01-30 14:42:46 +01:00
canonicalize_filename.sh Style: Cleanup uses of double spaces between words 2021-06-07 12:06:59 +02:00
pre-commit Add ability to extend the set of Git pre-commit hooks 2022-09-01 10:34:29 +02:00
pre-commit-black Make Git hooks work on worktrees on Windows 2022-09-01 10:34:13 +02:00
pre-commit-clang-format Style: Mark clang-format 16 as supported for pre-commit hook 2024-01-30 14:42:46 +01:00
pre-commit-make-rst Rename "makerst.py" to "make_rst.py" 2021-10-26 13:34:36 +02:00
winmessage.ps1 Cleanup: Remove executable bit from files which don't need it 2021-01-26 17:00:15 +01:00

README.md

Git hooks for Godot Engine

This folder contains Git hooks meant to be installed locally by Godot Engine contributors to make sure they comply with our requirements.

List of hooks

  • Pre-commit hook for clang-format: Applies clang-format to the staged files before accepting a commit; blocks the commit and generates a patch if the style is not respected. You may need to edit the file if your clang-format binary is not in the PATH, or if you want to enable colored output with pygmentize.
  • Pre-commit hook for black: Applies black to the staged Python files before accepting a commit.
  • Pre-commit hook for make_rst: Checks the class reference syntax using make_rst.py.

Installation

Copy all the files from this folder into your .git/hooks folder, and make sure the hooks and helper scripts are executable.

Linux/MacOS

The hooks rely on bash scripts and tools which should be in the system PATH, so they should work out of the box on Linux/macOS.

Windows

clang-format
black
  • Python installation: make sure Python is added to the PATH
  • Install black - in any console: pip3 install black

Custom hooks

The pre-commit hook will run any other script in .git/hooks whose filename matches pre-commit-custom-*, after the Godot ones.