Code Checks
Appearance
pre-commit via prek
https://github.com/j178/prek is a replacement for pre-commit
brew install prek prek run --all-files # update hook versions prek autoupdate # or pnpm dlx @j178/prek@0.4.14 run --all-files
prek.toml (copy in edit mode)
#:schema https://www.schemastore.org/prek.json exclude = (?x)^( \.vscode/.* )$ repos repo = "builtin" hooks = [ { id = "check-added-large-files", args = [ "--maxkb=500", ] }, { id = "check-case-conflict" }, { id = "check-executables-have-shebangs" }, { id = "check-illegal-windows-names" }, { id = "check-json" }, { id = "check-json5" }, { id = "check-merge-conflict" }, { id = "check-shebang-scripts-are-executable" }, { id = "check-symlinks" }, { id = "check-toml" }, { id = "check-vcs-permalinks" }, { id = "check-xml" }, { id = "check-yaml" }, { id = "destroyed-symlinks" }, { id = "detect-private-key" }, { id = "end-of-file-fixer" }, { id = "file-contents-sorter", files = "^(.gitignore|cspell-words.txt)$", args = [ "--ignore-case", ] }, { id = "fix-byte-order-marker" }, { id = "mixed-line-ending", args = [ "--fix=lf", ] }, { id = "requirements-txt-fixer" }, { id = "trailing-whitespace" }, ]
GitLeaks
repos repo = "https://github.com/gitleaks/gitleaks" rev = "v8.30.1" hooks = [{ id = "gitleaks" }]
Markdown via rumdl
https://github.com/rvben/rumdl
brew install rumdl rumdl fmt . rumdl check . rumdl check . --fix # or pnpm dlx rumdl@0.2.55 fmt pnpm dlx rumdl@0.2.55 check pnpm dlx rumdl@0.2.55 check --fix
.rumdl.toml
[global] disable = ["MD013"] # line-length
prek / pre-commit hook
repos repo = "https://github.com/rvben/rumdl-pre-commit" rev = "v0.2.57" hooks = [{ id = "rumdl", args = ["--fix"] }, { id = "rumdl-fmt" }]
YAML via ryl
https://github.com/owenlamont/ryl
# run without config file:
# via uv
uvx ryl@0.21.0 check -d "{extends: default, rules: {line-length: disable, truthy: disable}, ignore: [pnpm-lock.yaml]}" . --fix
# via npm
npx -y @owenlamont/ryl@0.21.0 check -d "{extends: default, rules: {line-length: disable, truthy: disable}, ignore: [pnpm-lock.yaml]}" . --fix
# via pnpm
pnpm dlx @owenlamont/ryl@0.21.0 check -d "{extends: default, rules: {line-length: disable, truthy: disable}, ignore: [pnpm-lock.yaml]}" . --fix
.ryl.toml
ignore = ["pnpm-lock.yaml"] [rules] # https://ryl-docs.pages.dev/rules/ anchors = "enable" braces = "enable" brackets = "enable" colons = "enable" commas = "enable" document-end = "disable" empty-lines = "enable" empty-values = "disable" float-values = "disable" hyphens = "enable" indentation = "enable" key-duplicates = "enable" key-ordering = "disable" line-length = "disable" new-line-at-end-of-file = "enable" new-lines = "enable" octal-values = "disable" quoted-strings = "disable" trailing-spaces = "enable" [rules.comments] level = "warning" [rules.comments-indentation] level = "warning" [rules.document-start] level = "warning" [rules.truthy] level = "warning"
prek / pre-commit hook
repos repo = "https://github.com/owenlamont/ryl-pre-commit" rev = "v0.21.0" hooks = [{ id = "ryl" }]
TOML via taplo
https://github.com/tamasfe/taplo
pnpm dlx @taplo/cli@0.7.0 fmt *.toml pnpm dlx @taplo/cli@0.7.0 check *.toml
Shell via shfmt
https://github.com/mvdan/sh#shfmt
brew install shfmt shfmt -w -i 2 -ci .
prek / pre-commit hook
repos repo = "https://github.com/scop/pre-commit-shfmt" rev = "v3.13.1-1" hooks = [{ id = "shfmt", args = ["-w", "-i", "2", "-ci"] }]