52 lines
1.9 KiB
YAML
52 lines
1.9 KiB
YAML
# See https://pre-commit.com for more information
|
||
# See https://pre-commit.com/hooks.html for more hooks
|
||
repos:
|
||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||
rev: v6.0.0
|
||
hooks:
|
||
- id: trailing-whitespace
|
||
- id: end-of-file-fixer
|
||
- id: check-yaml
|
||
- id: check-added-large-files
|
||
- repo: local
|
||
hooks:
|
||
- id: forbid-ai-punctuation
|
||
name: Forbid smart punctuation (en/figure dash, minus, ellipsis, arrows, smart quotes)
|
||
language: pygrep
|
||
entry: '(–|‒|―|−|…|→|⇐|⇒|⇔|“|”|‘|’)'
|
||
files: '\.(zig|zon|md|srf|txt|toml|ya?ml)$'
|
||
exclude: '^\.pre-commit-config\.yaml$'
|
||
- id: forbid-prose-em-dash
|
||
name: Forbid prose em-dash (use ASCII hyphen); no-data sentinel glyphs are exempt
|
||
language: pygrep
|
||
entry: ' — '
|
||
files: '\.(zig|zon|md|srf|txt|toml|ya?ml)$'
|
||
exclude: '^(\.pre-commit-config\.yaml|src/format\.zig|src/views/projections\.zig|docs/reference/cli/milestones\.md)$'
|
||
- repo: https://github.com/batmac/pre-commit-zig
|
||
rev: v0.3.0
|
||
hooks:
|
||
- id: zig-fmt
|
||
- repo: local
|
||
hooks:
|
||
- id: zlint
|
||
name: Run zlint
|
||
# zlint accepts file paths only via stdin (-S); positional
|
||
# args are interpreted as directory names and silently
|
||
# produce no output. Pipe pre-commit's file list through
|
||
# bash to get the paths to zlint as stdin lines.
|
||
entry: bash -c 'printf "%s\n" "$@" | zlint --deny-warnings --fix -S' --
|
||
language: system
|
||
types: [zig]
|
||
- repo: https://github.com/batmac/pre-commit-zig
|
||
rev: v0.3.0
|
||
hooks:
|
||
- id: zig-build
|
||
- repo: local
|
||
hooks:
|
||
- id: test
|
||
name: Run zig build test
|
||
entry: zig
|
||
args: ["build", "coverage", "-Dcoverage-threshold=77"]
|
||
language: system
|
||
types: [file]
|
||
pass_filenames: false
|