# 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: v4.0.1
  hooks:
  - id: trailing-whitespace
  - id: end-of-file-fixer
  - id: check-merge-conflict

  # Quick syntax checkers
  - id: check-xml
  - id: check-yaml
  - id: check-toml
  - id: check-json
    exclude: "tsconfig\\.json$"

- repo: https://github.com/editorconfig-checker/editorconfig-checker.python
  rev: 2.3.54
  hooks:
  - id: editorconfig-checker
    args: ['-disable-indentation']
    exclude: "^(.*\\.(bat)|LICENSE)$"

- repo: local
  hooks:
  - id: checkstyle
    name: Check Java codestyle
    files: ".*\\.java$"
    language: system
    entry: ./gradlew checkstyleMain checkstyleTest
    pass_filenames: false
    require_serial: true
  - id: license
    name: Check Java license headers
    files: ".*\\.java$"
    language: system
    entry: ./gradlew licenseFormat
    pass_filenames: false
    require_serial: true
  - id: illuaminate
    name: Check Lua code
    files: ".*\\.(lua|java|md)"
    language: script
    entry: config/pre-commit/illuaminate-lint.sh
    pass_filenames: false
    require_serial: true

exclude: |
  (?x)^(
    src/generated|
    src/test/resources/test-rom/data/json-parsing/|
    src/testMod/server-files/|
    config/idea/|
    .*\.dfpwm
  )