mirror of https://github.com/icsharpcode/ILSpy.git
Tree:
40a667fefb
christophwille/closedhierarchies
christophwille/contributing
christophwille/decompilerdocs
christophwille/membench
claude/ilspy-pr-3839-review-uo8q7r
collection-expression-tests
copilot/add-field-keyword-auto-properties
deconstruction-fixes
fix-3475-anonymous-type-null
fix-3860-outvar-explicit-type
fix/3465
fix/3518
gh-pages
issue1638
master
natural-type-lambdas-methods
null-coalescing-assignment
release/10.1
release/6.2
release/7.1
release/7.2
release/8.1
stash/beautify-enum-member-declarations
stash/dynamic-await
1.0-Beta
1.0-M1
1.0-M2
1.0-M3
1.0.0
2.0.0
2.1
2.2
2.3
2.3.1
3.0-Preview1
3.0-Preview2
3.0.2
v10.0
v10.0-preview1
v10.0-preview2
v10.0-preview3
v10.0.1
v10.1
v2.3.2
v2.4
v3.0
v3.0-beta1
v3.0-beta2
v3.0-beta2a
v3.0-beta3
v3.0-beta4
v3.0.1
v3.1-beta1
v3.1-final
v3.1-rc
v3.2-beta
v3.2-rc
v3.2.0
v4.0
v4.0-alpha1
v4.0-beta1
v4.0-beta2
v4.0-beta3
v4.0-rc1
v4.0-rc2
v4.0.1
v5.0
v5.0-preview1
v5.0-preview2
v5.0-preview3
v5.0-preview4
v5.0-rc1
v5.0.1
v5.0.2
v6.0
v6.0-preview1
v6.0-preview2
v6.0-preview3
v6.0-preview4
v6.0-rc1
v6.1
v6.2
v6.2-preview1
v6.2-preview2
v6.2.1
v7.0
v7.0-preview1
v7.0-preview2
v7.0-preview3
v7.0-rc1
v7.0-rc2
v7.1
v7.2
v7.2-preview1
v7.2-preview2
v7.2-preview3
v7.2-preview4
v7.2-rc
v7.2.1
v8.0
v8.0-preview1
v8.0-preview2
v8.0-preview3
v8.0-preview4
v8.0-rc1
v8.1
v8.1.1
v8.2
v9.0
v9.0-preview1
v9.0-preview2
v9.0-preview3
v9.0-rc
v9.1
${ noResults }
4 Commits (40a667fefb6b1c77ff9b837fa367c19aff6a4295)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
ab2d3699b8 |
Restore the per-group bulk-toggle checkbox in decompiler settings
DecompilerSettingsGroupViewModel carries the full tri-state AreAllItemsChecked plumbing to bulk-toggle every setting in a category (the C# language-version groups), but the panel's Expander header had been reduced to plain category text, so each group rendered without its checkbox. Restore the header CheckBox bound to AreAllItemsChecked, matching the original. |
4 weeks ago |
|
|
f466b2399b |
Add per-step visual breakpoints to the headless UI tests
To audit what each UI test actually exercises, every step now snapshots the live window to <TestFixtureName>/<TestName>_<NN>_<ShortDescription>.png: a booted frame (emitted automatically by TestHarness.BootAsync), one after each state-changing action, and one before each assertion. Flip ILSPY_TESTS_VISIBLE=1 to render the filmstrip; it lands under %TEMP%/ilspy-test-captures (overridable via ILSPY_TEST_CAPTURES). The step number and fixture/test name are derived automatically so inserting a breakpoint never renumbers the rest. The identity is recorded up front from the real ITest in an ITestAction hook rather than read live: NUnit's TestContext.CurrentContext does not flow onto async continuations, so a capture after an await would otherwise collide under the ad-hoc context. And when rendering is off the whole call is a true no-op -- not even a dispatcher pump -- so instrumenting a test can never perturb the navigation/tab timing it asserts on. Full headless suite stays green. |
4 weeks ago |
|
|
56afcf8abd |
Factor repeated headless-test setup into shared helpers
Nearly every headless UI test opened with the same four-line prologue (resolve the shared MainWindow, show it, cast its DataContext, wait for the assembly list), then repeated the corelib lookup, the EnsureLazyChildren + Children.OfType<T>().Single() drill, the registry single-by-header lookups, and the open-an-assembly-and-wait dance. The duplication made the intent of each test hard to see and every signature tweak a suite-wide edit. Collapse those into TestHarness (BootAsync, OpenAssemblyAsync, GetCommand, GetEntry) and TreeNavigation extensions (FindCoreLib, GetChild<T>, Expand<T>), then apply them across the suite. Net ~865 lines of boilerplate removed with no change in behaviour; the full headless suite stays green. |
4 weeks ago |
|
|
2e9f0504af |
Fix bottom-of-Options content unreachable at max scroll
The trailing HeaderedContentControl in the Display panel (Other -> Sort results by fitness) sat 15 px below the ScrollViewer.Extent's reported height: the outer StackPanel's measure under-counted that last child's inner content, so MaxYOffset never grew enough to scroll the checkbox into view. The Reset-to-defaults border below the ScrollViewer covered the gap visually, making the checkbox look obscured. ScrollViewer.Padding alone can't compensate because Avalonia 12's Simple-theme ScrollContentPresenter collapses Padding on the axis the scrollbar lives on -- the horizontal 6 px stuck, the vertical 6 px was dropped. Wrapping the content in a Border with explicit Padding makes the padding part of the StackPanel's measured extent, and the last child becomes reachable. Applied to both panels that use a top-level StackPanel under a ScrollViewer; Misc is unaffected (no ScrollViewer, two checkboxes never overflow). The new OptionsPageScrollReachTests.Last_Item_In_Display_Panel_Is_- Reachable_At_Max_Scroll opens the Options tab, scrolls the Display panel to ScrollViewer.Extent.Height, and asserts the "Sort results by fitness" CheckBox's rendered bottom sits at or above the Reset border's top in window-coordinate space. Assisted-by: Claude:claude-opus-4-7:Claude Code |
4 weeks ago |