NormalizeSeparators¶
Normalize separators and indents.
Formatter configuration
NormalizeSeparators is included in the default formatters, but it can be also run separately with:
robocop format --select NormalizeSeparators
You can also disable NormalizeSeparators:
robocop format --configure NormalizeSeparators.enabled=False
All separators (pipes included) are converted to fixed length of 4 spaces (configurable via global option
--space-count
). To separately configure the indentation, use --indent
global option.
Note
There are formatters that also affect separator lengths - for example AlignSettingsSection
. NormalizeSeparators
is used as a base and then potentially overwritten by behaviours of other formatters. If you only want to have fixed
separator lengths (without aligning) then only run this formatter 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 space-count
, you can change the default separator length:
robocop format --space-count 8
*** 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 space-count
value (default 4
spaces). To configure it, use --indent
:
robocop format --indent 4
Combine it with space-count
to set whitespace separately for indent and separators:
robocop format --indent 4 --space-count 2
*** 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:
> robocop format -c NormalizeSeparators.flatten_lines=True
*** 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:
> robocop format --configure NormalizeSeparators.align_new_line=True
*** 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
:
robocop format --configure NormalizeSeparators.skip_documentation=True
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.