Block with long list of block vars doesn't get split onto multiple lines
dom-binti opened this issue · comments
Blocks with a long list of vars doesn't get split. Eg:
query do |long_arg:, longer_arg:, longerest_arg:, longerester_arg:, very_long_long_long_arg:|
foo
end
isn't changed when run through stree format
.
I started by writing my own plugin for BlockVar
adding a group
and a couple breakable_empty
s, which works and produces output that conforms with line length:
query do |
long_arg:,
longer_arg:,
longerest_arg:,
longerester_arg:,
very_long_long_long_arg:
|
foo
end
The plugin has an issue though with blocks passed to methods with their own long list of args. In its current state, syntax_tree
formats it like this:
foo(
argument,
argument,
argument,
argument,
argument,
argument,
argument,
) { |val| bar }
With the plugin I wrote, that ends up being formatted as
foo(argument, argument, argument, argument, argument, argument, argument) do |
val
|
bar
end
presumably because the block var groups are the outermost, and therefore get split first.
Is there a way to tell syntax_tree
to break the method call before breaking the block vars?