segmentio / golines

A golang formatter that fixes long lines
MIT License
916 stars 58 forks source link

Pre-commit hook: pin goimports and allow customized arguments #122

Open lubgr opened 8 months ago

lubgr commented 8 months ago

Two minor propositions for the pre-commit configuration:

  1. Use the additional_dependencies option to install goimports into the isolated environments that pre-commit creates for each hook. This makes the hook independent on a system-wide or $GOBIN installation of goimports, and allows for a portable configuration of pre-commit checks. The hook then also works, if goimports is not already installed on the system where the hook runs.
  2. Split the hook's entry point from its args. This allows users to fully customise how golines is invoked in their local pre-commit configuration. Since entry can't be overridden, moving -w . into args gives users control the entire invocation. Arguably, this might make the hook harder to use, because args: [-m, 80] works well without this patch, and with the patch it has to be args: [-m, 80, -w, .]. I'm happy to remove this second change, if the control/simplicity tradeoff undesired. Example customisation:
    - repo: https://github.com/segmentio/golines
    rev: v0.12.2
    hooks:
      - id: golines
        args: [-m, 80, -t, 2, -w, .]