YAS Style
JuliaFormatter.YASStyle — TypeYASStyle()Formatting style based on YASGuide and JuliaFormatter#198.
Configurable options with different defaults to DefaultStyle are:
- always_for_in= true
- always_use_return= true
- import_to_using= true
- join_lines_based_on_source= true
- pipe_to_function_call= true
- remove_extra_newlines= true
- separate_kwargs_with_semicolon= true
- short_to_long_function_def= true
- whitespace_in_kwargs= false
- whitespace_ops_in_indices= true
- yas_style_nesting= false
Configuration File Example
The .JuliaFormatter.toml which represents these settings is
style = "yas"Or to use YASStyle except change one of the settings:
style = "yas"
remove_extra_newlines = falseDirect Usage
format("file.jl", YASStyle())Or to use YASStyle except change one of the settings:
format("file.jl", YASStyle(), remove_extra_newlines=false)Differences from DefaultStyle
There are three main differences between YASStyle and DefaultStyle. They are based on alignment and line break behaviors.
- Arguments are aligned to just after the start of the opener [, {, (, etc.
function_call(arg1,
              arg2)- As you can see from the above the closer sticks to the final argument. 
- Nesting (line breaks) only occur when the margin of the next argument exceeds the maximim limit. 
function_call(arg1, arg2,
              arg3)arg3 exceeded the margin limit and so it was placed on the following line.
Nesting =
Unlike DefaultStyle, assignment operations = are not nested. That is, the following
my_function(arg1, arg2) = arg1 * arg2Is not nested to
my_function(arg1, arg2) =
    arg1 * arg2It is highly recommended setting short_to_long_function_def to true. This option transforms the above to a long function definition if it exceeds the maximum margin.
function my_function(arg1, arg2)
    arg1 * arg2
endAdditional Options
The YASStyle supports the additional option variable_call_indent, which is set to [] by default. It allows calls without aligning to the opening parenthesis:
# Allowed with and without `Dict in variable_call_indent`
Dict{Int,Int}(1 => 2,
              3 => 4)
# Allowed when `Dict in variable_call_indent`, but
# will be changed to the first example when `Dict ∉ variable_call_indent`.
Dict{Int,Int}(
    1 => 2,
    3 => 4)