mirror of https://github.com/icsharpcode/ILSpy.git
Tree:
f302b1fb3e
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 }
3 Commits (f302b1fb3ed3dae3ed41763b627c16840096ac69)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
f302b1fb3e |
Lazy-load custom package icons in the NuGet feed dialog
The "Open from NuGet feed" chooser rendered every result with the default NuGet logo, even though the feed search already returns each package's own IconUrl - it was fetched into NuGetPackageInfo and then ignored. The list looked like a wall of identical icons, unlike the NuGet gallery. NuGetPackageInfo is an immutable feed DTO bound straight into the ListBox, so it can't raise PropertyChanged for an icon that arrives later. Rather than bolt mutability and an Avalonia image type onto that DTO, introduce a thin per-row view model (NuGetPackageViewModel) that owns an observable Icon defaulting to the logo and swaps in the real icon once downloaded, plus an INuGetIconLoader service that fetches and decodes off the UI thread. Icons are decoded to 64px (rendered at 32) and cached by URL as the in-flight Task so each URL downloads once and concurrent requests share it; the loader is held for the command's lifetime so the cache survives reopening the dialog. A per-search CancellationTokenSource stops a stale result set's downloads from painting onto rows recycled by the next search. Any failure - non-http URL, network error, decode error - collapses to null so a dead icon URL just keeps the default. Also disable horizontal scrolling on the results list. With it enabled (the default), rows measured at unbounded width, so the star column stopped filling the viewport and selecting a row brought the overflow into view - the list jumped sideways and grew a scrollbar. The row layout is meant to fit the width (the description wraps/trims), so horizontal scrolling was never wanted. Assisted-by: Claude:claude-opus-4-8:Claude Code |
2 weeks ago |
|
|
51aafa0fd9 |
Move ILSpy UI code back to the ICSharpCode.ILSpy root namespace
The Avalonia port had placed the UI app in an ILSpy.* namespace tree, while the csproj RootNamespace and every prior release (through 10.1) use ICSharpCode.ILSpy.*. Restoring the historical namespace reduces the public API diff against release/10.1 for plugin authors and removes the shadowing that forced global:: qualifiers in the test project. The Images class and AccessOverlayIcon enum move back into the root namespace (as in 10.1), since an ICSharpCode.ILSpy.Images namespace would shadow the Images class for all code inside ICSharpCode.ILSpy. Assisted-by: Claude:claude-fable-5:Claude Code |
4 weeks ago |
|
|
358ec20dd9 |
Add Open from NuGet feed dialog for browsing and opening packages
Opening a package from a feed previously meant downloading the .nupkg by hand and using File > Open (#2313). The new File menu command searches any public V3 feed (editable package-source list, persisted as an MRU in the ILSpy settings), offers the latest 100 versions in a dropdown, and downloads into the NuGet global packages folder so the cache is shared with every other NuGet consumer on the machine and nothing is fetched twice. The cached .nupkg is then opened exactly like the regular Open command. Feed access sits behind INuGetFeedClient so the headless test suite covers search, paging, version selection, download, cancellation, and error surfacing without touching the network. Assisted-by: Claude:claude-fable-5:Claude Code |
4 weeks ago |