Two minor propositions for the pre-commit configuration:
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.
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:
Two minor propositions for the pre-commit configuration:
additional_dependencies
option to installgoimports
into the isolated environments thatpre-commit
creates for each hook. This makes the hook independent on a system-wide or$GOBIN
installation ofgoimports
, and allows for a portable configuration of pre-commit checks. The hook then also works, ifgoimports
is not already installed on the system where the hook runs.entry
point from itsargs
. This allows users to fully customise howgolines
is invoked in their localpre-commit
configuration. Sinceentry
can't be overridden, moving-w .
intoargs
gives users control the entire invocation. Arguably, this might make the hook harder to use, becauseargs: [-m, 80]
works well without this patch, and with the patch it has to beargs: [-m, 80, -w, .]
. I'm happy to remove this second change, if the control/simplicity tradeoff undesired. Example customisation: