Add Support for Expression Context Pinning
This PR introduces a new feature in the Expressions view that allows expressions to be pinned to a specific stack frame, ensuring their values remain visible and consistent even when switching between threads or stack frames or even launches. This enhancement improves the debugging experience by preventing frequent <error on evaluation> issues (if one wishes to see the variables/expressions again) and enables developers to track and compare expressions or variables (by watch) across different contexts more effectively.
Pinned expressions will be highlighted with Bold and italics
This can be removed/unpinned manually or will be removed/unpinned if context not available
https://github.com/user-attachments/assets/63e68e0a-3a8a-4ab2-8bd3-951098a9cd33
(apologies for the poor video quality - had to compress the size below 10 MB)
Test Results
1 947 files ±0 1 947 suites ±0 1h 37m 22s ⏱️ + 1m 47s 4 721 tests ±0 4 697 ✅ ±0 24 💤 ±0 0 ❌ ±0 14 163 runs ±0 13 996 ✅ ±0 167 💤 ±0 0 ❌ ±0
Results for commit c8058885. ± Comparison against base commit 7c907897.
:recycle: This comment has been updated with latest results.
- the feedback that the value is pinned to a particular context (only bold) is not explicit; The context on which the evaluation is applied should be made more explicit
Additional label can be provided 👍
- When an expression is pinned to a context, it's easily possible to get the value from another context
But in different launches it will be difficult.