godot/misc/hooks
Rémi Verschelde 49f4860ce3
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.
2023-12-06 13:26:53 +01:00
..
asmessage.applescript [Git hooks] Add AppleScript dialog script for macOS. 2023-01-16 14:23:06 +02:00
canonicalize_filename.sh Replace HTTP links with HTTPS for sites with HTTPS versions 2021-08-22 20:13:11 -05:00
pre-commit Add ability to extend the set of Git pre-commit hooks 2022-08-30 13:34:10 +02:00
pre-commit-black [Git hooks] Add AppleScript dialog script for macOS. 2023-01-16 14:23:06 +02:00
pre-commit-clang-format Style: Mark clang-format 16 as supported for pre-commit hook 2023-12-06 13:26:53 +01:00
pre-commit-make-rst Create an "Editor-only" section in the online class reference 2023-04-24 21:06:55 +02:00
README.md Style: Mark clang-format 16 as supported for pre-commit hook 2023-12-06 13:26:53 +01:00
winmessage.ps1 Cleanup: Remove executable bit from files which don't need it 2021-01-19 23:36:42 +01:00

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.