NormalizeSeparators¶
Normalize separators and indents.
Transformer configuration
NormalizeSeparators is included in the default transformers, but it can be also run separately with:
robotidy --transform NormalizeSeparators src
You can also disable NormalizeSeparators:
robotidy --configure NormalizeSeparators:enabled=False src
All separators (pipes included) are converted to fixed length of 4 spaces (configurable via global option
--spacecount). To separately configure the indentation, use --indent global option.
Note
There are transformers that also affect separator lengths - for example AlignSettingsSection. NormalizeSeparators
is used as a base and then potentially overwritten by behaviours of other transformers. If you only want to have fixed
separator lengths (without aligning) then only run this transformer without running the others.
*** Settings ***
Library library.py WITH NAME alias
Force Tags tag
... tag
Documentation doc
... multi
... line
*** Test Cases ***
Test case
[Setup] Keyword
Keyword with arg
... and multi lines
[Teardown] Keyword
Test case with structures
FOR ${variable} IN 1 2
Keyword
IF ${condition}
Log ${stuff} console=True
END
END
*** Settings ***
Library library.py WITH NAME alias
Force Tags tag
... tag
Documentation doc
... multi
... line
*** Test Cases ***
Test case
[Setup] Keyword
Keyword with arg
... and multi lines
[Teardown] Keyword
Test case with structures
FOR ${variable} IN 1 2
Keyword
IF ${condition}
Log ${stuff} console=True
END
END
Configure separator¶
By configuring a global option spacecount, you can change the default separator length:
robotidy --spacecount 8 src
*** Settings ***
Library library.py WITH NAME alias
Force Tags tag
... tag
*** Settings ***
Library library.py WITH NAME alias
Force Tags tag
... tag
Indentation¶
By default, indentation is the same as spacecount value (default 4 spaces). To configure it, use --indent:
robotidy --indent 4 src
Combine it with spacecount to set whitespace separately for indent and separators:
robotidy --indent 4 --spacecount 2 src
*** Keywords ***
Keyword
FOR ${var} IN RANGE 10
Keyword With ${var}
END
*** Keywords ***
Keyword
FOR ${var} IN RANGE 10
Keyword With ${var}
END
Flatten multi line statements¶
By default NormalizeSeparators only updates the separators and leave any multi line intact. It is possible to
flatten multi line statements into single line using flatten_lines option:
> robotidy -c NormalizeSeparators:flatten_lines=True src
*** Keywords ***
Keyword
Keyword Call 1 2
... 1 # comment
... 2 3
*** Keywords ***
Keyword
Keyword Call 1 2
... 1 # comment
... 2 3
*** Keywords ***
Keyword
Keyword Call 1 2 1 2 3 # comment
Align new lines¶
It is possible to align new lines to the first line. This alignment will be overwritten if you have transformers affecting alignment enabled, such as:
AlignKeywordsSection
AlignSettingsSection
AlignTemplatedTestCases
AlignTestCasesSection
AlignVariablesSection
You can enable it using align_new_line parameter:
> robotidy --configure NormalizeSeparators:align_new_line=True src
*** Test Cases ***
Test
[Tags] tag
... tag2
*** Keywords ***
Keyword
[Arguments] ${argument1}
... ${argument2} ${argument3}
Keyword Call argument
... arg2
... arg3
*** Test Cases ***
Test
[Tags] tag
... tag2
*** Keywords ***
Keyword
[Arguments] ${argument1}
... ${argument2} ${argument3}
Keyword Call argument
... arg2
... arg3
*** Test Cases ***
Test
[Tags] tag
... tag2
*** Keywords ***
Keyword
[Arguments] ${argument1}
... ${argument2} ${argument3}
Keyword Call argument
... arg2
... arg3
Skip formatting¶
It is possible to use the following arguments to skip formatting of the code:
Documentation is formatted by default. To disable formatting the separators inside documentation, and to only format
indentation, set skip_documentation to True:
robotidy --configure NormalizeSeparators:skip_documentation=True src
TEST_TC
[Argument] ${a} ${long_arg}
[Documentation] Test Doc.
...
... Arguments:
... a: Argument A
... long_arg: Argument long_arg.
Test Case Body
TEST_TC
[Argument] ${a} ${long_arg}
[Documentation] Test Doc.
...
... Arguments:
... a: Argument A
... long_arg: Argument long_arg.
Test Case Body
TEST_TC
[Argument] ${a} ${long_arg}
[Documentation] Test Doc.
...
... Arguments:
... a: Argument A
... long_arg: Argument long_arg.
Test Case Body
It is also possible to use disablers (Disablers) but skip option
makes it easier to skip all instances of given type of the code.