What's New in RobotCode 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
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
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
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)
Thank You
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.