AlignVariablesSection#
Align variables in *** Variables ***
section to columns.
Transformer configuration
AlignVariablesSection is included in the default transformers, but it can be also run separately with:
robotidy --transform AlignVariablesSection src
You can also disable AlignVariablesSection:
robotidy --configure AlignVariablesSection:enabled=False src
*** Variables ***
${VAR} 1
${LONGER_NAME} 2
&{MULTILINE} a=b
... b=c
*** Variables ***
${VAR} 1
${LONGER_NAME} 2
&{MULTILINE} a=b
... b=c
Align up to columns#
You can configure how many columns should be aligned to longest token in given column. The remaining columns
will use fixed length separator length --spacecount
. By default only first two columns are aligned.
Example of how AlignVariablesSection transformer behaves with default configuration and multiple columns:
*** Variables ***
${VARIABLE 1} 10 # comment
@{LIST} a b c d
${LONGER_NAME_THAT_GOES_AND_GOES} longer value that goes and goes
*** Variables ***
${VARIABLE 1} 10 # comment
@{LIST} a b c d
${LONGER_NAME_THAT_GOES_AND_GOES} longer value that goes and goes
You can configure it to align three columns:
robotidy --configure AlignVariablesSection:up_to_column=3 src
*** Variables ***
${VARIABLE 1} 10 # comment
@{LIST} a b c d
${LONGER_NAME_THAT_GOES_AND_GOES} longer value that goes and goes
*** Variables ***
${VARIABLE 1} 10 # comment
@{LIST} a b c d
${LONGER_NAME_THAT_GOES_AND_GOES} longer value that goes and goes
To align all columns set up_to_column
to 0.
Select variable types to align#
It is possible to not align variables of given types. You can choose between following types: scalar
($
), list
(@
),
dict
(&
). Invalid variables - such as missing values or not left aligned - will be always aligned no matter the type.
You can configure types to skip using skip_types
parameter:
robotidy --configure AlignVariablesSection:skip_types=dict,list src
skip_types
accepts comma separated list of types.
Using above configuration code will be aligned in following way:
*** Variables ***
${VARIABLE 1} 10 # comment
@{LIST} a
... b
... c
... d
${LONGER_NAME_THAT_GOES_AND_GOES} longer value that goes and goes
&{SOME_DICT} key=value key2=value
*** Variables ***
${VARIABLE 1} 10 # comment
@{LIST} a
... b
... c
... d
${LONGER_NAME_THAT_GOES_AND_GOES} longer value that goes and goes
&{SOME_DICT} key=value key2=value
Fixed width of column#
It’s possible to set fixed minimal width of column. To configure it use min_width
parameter:
robotidy --configure AlignVariablesSection:min_width=20 src
This configuration respects up_to_column
parameter:
*** Variables ***
# some comment
${VARIABLE 1} 10 # comment
@{LIST} a b c d
${LONGER_NAME_THAT_GOES_AND_GOES} longer value that goes and goes
&{MULTILINE} a=b
... b=c
... d=1
*** Variables ***
# some comment
${VARIABLE 1} 10 # comment
@{LIST} a b c d
${LONGER_NAME_THAT_GOES_AND_GOES} longer value that goes and goes
&{MULTILINE} a=b
... b=c
... d=1
Select lines to align#
AlignVariablesSection does also support global formatting params startline
and endline
:
robotidy --startline 5 --endline 17 --configure AlignVariablesSection:up_to_column=3 src
*** Settings ***
Documentation This is doc
*** Variables ***
# some comment
${VARIABLE 1} 10 # comment
@{LIST} a b c d
${LONGER_NAME_THAT_GOES_AND_GOES} longer value that goes and goes
&{MULTILINE} a=b
... b=c
... d=1
*** Keywords ***
Keyword
Keyword Call
*** Settings ***
Documentation This is doc
*** Variables ***
# some comment
${VARIABLE 1} 10 # comment
@{LIST} a b c d
${LONGER_NAME_THAT_GOES_AND_GOES} longer value that goes and goes
&{MULTILINE} a=b
... b=c
... d=1
*** Keywords ***
Keyword
Keyword Call