Several changes to our spacing and comments rules and also initial suppport for Robot Framework 5.1 features such as languages or ``AS`` markers.
Robot Framework 5.1 support
Language markers
Robocop now supports reading the Robot Framework files in different languages
using ``--language`` option. More details in our [docs](https://robocop.readthedocs.io/en/stable/user_guide.html#language-support) (646).
WITH NAME deprecated in favour of AS
Alias for library import can be now defined using ``AS`` marker (same as in Python).
``WITH NAME`` will be gradually deprecated in the future Robot Framework versions.
That's why we added support for ``AS`` marker to existing rules and created new
rule ``deprecated-with-name`` which will warn on ``WITH NAME`` usage starting from RF 5.1 (642).
Empty lines handling refactor (708)
We changed how we're recognizing the empty lines in spacing rules.
Previously ``consecutive-empty-lines``, ``empty-lines-between-keywords`` and ``empty-lines-between-test-cases``
rules ignored comments. This lead to suprising behaviours, for example following code reported three empty lines
between keywords:
*** Keywords ***
Keyword
Pass
comment 1
comment 2
Second Keyword
Pass
Detecting end of the keyword / test was also not working correctly (in above example `` comment 1`` should belong
to ``Keyword`` and do not count towards empty lines between keywords).
``consecutive-empty-lines`` now also works inside ``IF``, ``FOR``, ``WHILE`` and ``TRY`` blocks.
Configurable ``todo-in-comment``
New ``markers`` parameter in ``todo-in-comment`` rule that allows to define your own
markers that should be reported when found in the comment (674).
Configurable block comments in ``missing-space-after-comment``
New ``block`` parameter in ``missing-space-after-comment`` rule that allows to define
pattern for block comments that should be ignored by the rule (689)
Keywords inside run keywords are now parsed
Keywords inside keywords like ``Run Keywords`` or ``Run Keyword If`` are now recognized
and handled by keyword rules (691, 520).
Fixes
- ``too-few-calls-in-test-case`` now properly count keywords inside templated tests.
It is now also possible to ignore templated tests in ``too-few-calls-in-test-case`` rule
with ``ignore_templated`` parameter (685)
- ``too-few-calls-in-test-case`` and ``too-few-calls-in-keyword`` now counts new RF 5.0 syntax (such as
``RETURN`` or ``BREAK`` statements). The code inside ``IF``, ``FOR``, ``WHILE`` and ``TRY`` blocks is now
also recognized by those rules (704)
- several naming rules now reports with more precise location (290)
- duplicated import name now acknowledge the aliased name (699)
- external rules are now properly loaded from installed Python module (709)
- critical failures in Robot Framework that cause Robocop to stop working are now wrapped with more
user friendly message (586)
Acknowledgements
Big thanks to everyone:
ger-kil, Lucas-C, antonpaa and UliSei for raising issues and helping to improve
our documentation.
rikerfi for extending our comment rules