Replace bitmap-backed Visual Studio icons with ImageMonikers#1921
Merged
RobertvanderHulst merged 4 commits intomainfrom May 7, 2026
Merged
Conversation
Agent-Logs-Url: https://github.com/X-Sharp/XSharpPublic/sessions/b75c3f68-25d5-43cb-8b05-eda0b09e0246 Co-authored-by: RobertvanderHulst <14240939+RobertvanderHulst@users.noreply.github.com>
Agent-Logs-Url: https://github.com/X-Sharp/XSharpPublic/sessions/b75c3f68-25d5-43cb-8b05-eda0b09e0246 Co-authored-by: RobertvanderHulst <14240939+RobertvanderHulst@users.noreply.github.com>
Agent-Logs-Url: https://github.com/X-Sharp/XSharpPublic/sessions/b75c3f68-25d5-43cb-8b05-eda0b09e0246 Co-authored-by: RobertvanderHulst <14240939+RobertvanderHulst@users.noreply.github.com>
Agent-Logs-Url: https://github.com/X-Sharp/XSharpPublic/sessions/b75c3f68-25d5-43cb-8b05-eda0b09e0246 Co-authored-by: RobertvanderHulst <14240939+RobertvanderHulst@users.noreply.github.com>
Copilot created this pull request from a session on behalf of
RobertvanderHulst
May 7, 2026 11:23
View session
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request modernizes the Visual Studio integration icons by moving remaining command and hierarchy visuals away from a custom bitmap strip and onto Visual Studio’s Image Catalog monikers (especially for VS 2022 / DEV17). This reduces reliance on bitmap-backed resources and aligns the extension UI with standard VS icon theming.
Changes:
- Updated
Menus.vsctcommands to useImageCatalogGuidmoniker icons (and removed the custom bitmap strip registration). - Switched VS 2022 (
DEV17) hierarchy icons for the X# project node and reference container to moniker-based icons. - Consolidated X# file-extension-to-moniker mappings for better maintainability.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| src/VisualStudio/ProjectPackage/Nodes/XSharpProjectNode.cs | Uses icon monikers for the project node under DEV17 and gates bitmap image list loading/usage to non-DEV17. |
| src/VisualStudio/ProjectPackage/Nodes/XSharpFileNode.cs | Refactors and expands extension→moniker mappings; simplifies DEV17 moniker support logic. |
| src/VisualStudio/ProjectPackage/Menus.vsct | Replaces bitmap-backed command icons with Image Catalog monikers and removes the bitmap strip symbol/registration. |
| src/VisualStudio/ProjectBase/ReferenceContainerNode.cs | Enables moniker icons for the reference container under DEV17 and avoids bitmap-handle lookup in that configuration. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
src/VisualStudio/ProjectPackage/Menus.vsctwith image catalog monikersValidation
git --no-pager diff --check/home/runner/work/XSharpPublic/XSharpPublic/src/VisualStudio/ProjectPackage/Menus.vsctdotnet build src/VSIntegration2022.sln -c Debug -v minimal(fails in this Linux sandbox because the repo's VS integration projects require Visual Studio/VSSDK targets, XSharp build props, and .NET Framework targeting packs)