Open williamspatrick opened 4 months ago
shfmt supports all three of these forms, but it's true that it doesn't support enforcing any of the three forms consistently. I agree that being able to do that would be nice for Bash. It's worth pointing out that this is not a problem for POSIX Shell, where foo()
is the only option.
That said, the bar for new formatting options is high - I really want to avoid a situation like https://linux.die.net/man/1/indent with dozens of formatting options. I'm not sure whether we can support this without a new option, because I suspect people have different preferences for Bash function declarations.
Perhaps the answer is to repurpose the existing --func-next-line
in v4 so that it becomes a --func-style
flag with a string, with options like:
paren
- foo() {
paren-newl
- foo()\n{
func
- function foo {
func-newl
- function foo\n{
func-paren
- function foo() {
func-paren-newl
- function foo()\n{
This "blows up" the option into a 2x3 matrix, but I think that's fine as I don't suspect it will need to grow any further.
Would it be possible to easily emulate the
--force-function-style
behavior of beautysh? That seems to be the only missing feature to use this as a replacement.I usually set this to
fnpar
.