github robotcodedev/robotcode v2.5.1

11 hours ago

Bug Fixes

  • analyzer: Do not report embedded arguments as VariableNotFound in template keywords (c34455f)

    When a test case uses [Template] or Test Template with a keyword that has
    embedded arguments (e.g. "The result of ${calculation} should be ${expected}"),
    the embedded argument placeholders were incorrectly analyzed as unresolved
    variables, producing false VariableNotFound diagnostics.

    Skip variable analysis for embedded argument tokens when the keyword call
    originates from a template declaration.

  • robot: Match longest BDD prefix first for multi-word prefixes (dad536e)

    French BDD prefixes like "Étant donné que", "Et que",
    "Mais que" were not fully recognized because shorter prefixes (e.g.
    "Et") matched before longer ones (e.g. "Et que").

    Replaced manual iteration and set lookups with a regex-based approach
    matching Robot Framework's own strategy: prefixes sorted by length
    (longest first), compiled into a cached regex pattern. This applies to
    keyword_finder, model_helper (split/strip/is_bdd), and semantic tokens.

  • robot: Fix ${CURDIR} replacement in variable values and unify handling (13bf36b)

    Extract replace_curdir_in_variable_values() helper into utils/variables.py
    to deduplicate the ${CURDIR} substitution logic from _MyResourceBuilder and
    NamespaceAnalyzer. Fixes incorrect double-backslash escaping in
    _MyResourceBuilder that caused ${CURDIR} resolution to fail on Windows.

Documentation

  • news: Add v2.5.1 release notes (b0d9fb9)

Refactor

  • diagnostics: Add debug logging for namespace cache misses (99e322d)

    Log specific reasons when namespace cache entries are invalidated,
    including source mtime changes, config fingerprint mismatches, and
    dependency changes (libraries, resources, variables). Uses debug
    level with context_name="cache" for targeted activation.

Don't miss a new robotcode release

NewReleases is sending notifications on new releases.