|
2 | 2 |
|
3 | 3 | All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines. |
4 | 4 |
|
| 5 | +## [2.5.1](https://github.com/robotcodedev/robotcode/compare/v2.5.0..v2.5.1) - 2026-04-01 |
| 6 | + |
| 7 | +### Bug Fixes |
| 8 | + |
| 9 | +- **analyzer:** Do not report embedded arguments as VariableNotFound in template keywords ([c34455f](https://github.com/robotcodedev/robotcode/commit/c34455fe3a2a485bf361b65a6b52b55650d674b7)) |
| 10 | + |
| 11 | + When a test case uses [Template] or Test Template with a keyword that has |
| 12 | + embedded arguments (e.g. "The result of ${calculation} should be ${expected}"), |
| 13 | + the embedded argument placeholders were incorrectly analyzed as unresolved |
| 14 | + variables, producing false VariableNotFound diagnostics. |
| 15 | + |
| 16 | + Skip variable analysis for embedded argument tokens when the keyword call |
| 17 | + originates from a template declaration. |
| 18 | + |
| 19 | +- **robot:** Match longest BDD prefix first for multi-word prefixes ([dad536e](https://github.com/robotcodedev/robotcode/commit/dad536ecc44e4cdad9f222b3387f276dc7e6ee0a)) |
| 20 | + |
| 21 | + French BDD prefixes like "Étant donné que", "Et que", |
| 22 | + "Mais que" were not fully recognized because shorter prefixes (e.g. |
| 23 | + "Et") matched before longer ones (e.g. "Et que"). |
| 24 | + |
| 25 | + Replaced manual iteration and set lookups with a regex-based approach |
| 26 | + matching Robot Framework's own strategy: prefixes sorted by length |
| 27 | + (longest first), compiled into a cached regex pattern. This applies to |
| 28 | + keyword_finder, model_helper (split/strip/is_bdd), and semantic tokens. |
| 29 | + |
| 30 | +- **robot:** Fix ${CURDIR} replacement in variable values and unify handling ([13bf36b](https://github.com/robotcodedev/robotcode/commit/13bf36b8639887ff21d807a0045f8432b81fce8c)) |
| 31 | + |
| 32 | + Extract replace_curdir_in_variable_values() helper into utils/variables.py |
| 33 | + to deduplicate the ${CURDIR} substitution logic from _MyResourceBuilder and |
| 34 | + NamespaceAnalyzer. Fixes incorrect double-backslash escaping in |
| 35 | + _MyResourceBuilder that caused ${CURDIR} resolution to fail on Windows. |
| 36 | + |
| 37 | + |
| 38 | + |
| 39 | +### Documentation |
| 40 | + |
| 41 | +- **news:** Add v2.5.1 release notes ([b0d9fb9](https://github.com/robotcodedev/robotcode/commit/b0d9fb94fc6dc36ae4ff9fba0f8a5c3ba3888dd0)) |
| 42 | + |
| 43 | + |
| 44 | +### Refactor |
| 45 | + |
| 46 | +- **diagnostics:** Add debug logging for namespace cache misses ([99e322d](https://github.com/robotcodedev/robotcode/commit/99e322d8d9be298fbb22bb46d2283fa2db26e223)) |
| 47 | + |
| 48 | + Log specific reasons when namespace cache entries are invalidated, |
| 49 | + including source mtime changes, config fingerprint mismatches, and |
| 50 | + dependency changes (libraries, resources, variables). Uses debug |
| 51 | + level with context_name="cache" for targeted activation. |
| 52 | + |
| 53 | + |
| 54 | + |
5 | 55 | ## [2.5.0](https://github.com/robotcodedev/robotcode/compare/v2.4.0..v2.5.0) - 2026-03-31 |
6 | 56 |
|
7 | 57 | ### Bug Fixes |
|
0 commit comments