zfin/.pre-commit-config.yaml

46 lines
1.7 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: 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]
# zlint 0.7.9 misparses Zig 0.16's `async`/`await` method
# names (Group.async, Future.await) as the legacy keywords,
# firing false-positive "syntax error" diagnostics. Until
# zlint catches up, exclude files that legitimately use the
# std.Io.Group async/await methods. `zig fmt` rewrites the
# `@"async"`/`@"await"` workaround back to the bare form,
# so we can't dodge it locally either.
exclude: ^src/(tui|PortfolioData)\.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=75"]
language: system
types: [file]
pass_filenames: false