Skip to content

What's New in v2.5.1

A quick follow-up to v2.5.0 with three bugfixes that came in from your reports — thanks for filing them.

Template Keywords No Longer Flag Embedded Arguments as Unresolved

Section titled “Template Keywords No Longer Flag Embedded Arguments as Unresolved”

If you use [Template] or Test Template with a keyword that has embedded arguments — something like The result of ${calculation} should be ${expected} — RobotCode was treating the embedded argument placeholders as unresolved variables and showing false VariableNotFound diagnostics.

This happened because the analyzer didn't distinguish between regular variable references and embedded argument placeholders when the keyword call came from a template declaration. Fixed: embedded argument tokens in template contexts are now skipped during variable analysis. (#542)

Multi-Word BDD Prefixes Now Match Correctly

Section titled “Multi-Word BDD Prefixes Now Match Correctly”

Languages with multi-word BDD prefixes — most notably French with prefixes like Étant donné que, Et que, and Mais que — weren't always recognized correctly. The problem: shorter prefixes (e.g. Et) matched before longer ones (e.g. Et que), consuming the prefix too early and leaving the keyword name garbled.

RobotCode now sorts prefixes by length (longest first) and uses a single compiled regex for matching, which is the same strategy Robot Framework itself uses internally. This applies to keyword resolution, BDD prefix stripping, and semantic token highlighting. (#560)

${CURDIR} Works Correctly in Variable Values on Windows

Section titled “${CURDIR} Works Correctly in Variable Values on Windows”

The ${CURDIR} variable in resource file variable tables was broken on Windows due to inconsistent backslash escaping. The resource builder used quadruple backslashes (\\\\) while the namespace analyzer used double backslashes (\\), and neither was correct for all cases.

Both code paths now share a single replace_curdir_in_variable_values() helper with consistent escaping. (#589)


Thanks to everyone who reported these issues — your bug reports make RobotCode better for the whole community.

For the full list of changes, see the Changelog.

Released under the Apache-2.0. Copyright © 2022-present Daniel Biehl