Skip to content

Added IPluginResourceIncludes for Avalonia Resources#136

Merged
mdwigley merged 2 commits intoenterlucent:mainfrom
mdwigley:issue#135-mdwigley
Oct 17, 2025
Merged

Added IPluginResourceIncludes for Avalonia Resources#136
mdwigley merged 2 commits intoenterlucent:mainfrom
mdwigley:issue#135-mdwigley

Conversation

@mdwigley
Copy link
Copy Markdown
Member

Description

This PR introduces the new IPluginResourceInclusion interface, allowing plugins to contribute resource dictionaries either via URI or factory.

The theme configuration pipeline has been updated to resolve and order these inclusions, merge them into the application’s resources, and ensure deduplication.

This mirrors the existing IPluginStyleInclusion pattern, providing a consistent extension point for both resources and styles.

Related Issue

Motivation and Context

Previously, plugins could only contribute styles. With this change, plugins can now also provide resource dictionaries (e.g., brushes, templates, localized strings) in a structured and ordered way.

This improves modularity, makes theming more flexible, and allows plugin authors to extend the application’s look and feel without modifying core resources.

How Has This Been Tested?

  • Verified that application resources load correctly when no plugins are present.
  • Ran existing unit and integration tests to ensure no regressions.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Asset change (adds or updates icons, templates, or other assets)
  • Documentation change (adds or updates documentation)
  • Plugin change (adds or updates a plugin)

Checklist:

  • I have read the CONTRIBUTING document.
  • My change requires a change to the core logic.
    • I have linked the project issue above.
  • My change requires a change to the assets.
    • I have linked the asset issue above.
  • My change requires a change to the documentation.
    • I have linked the documentation issue above.
  • My change requires a change to a plugin.
    • I have linked the plugin issue above.

@mdwigley mdwigley self-assigned this Oct 17, 2025
@mdwigley mdwigley moved this to In review in NucleusAF Timeline Oct 17, 2025
@mdwigley mdwigley merged commit e0c3c0e into enterlucent:main Oct 17, 2025
@github-project-automation github-project-automation Bot moved this from In review to Done in NucleusAF Timeline Oct 17, 2025
@mdwigley mdwigley deleted the issue#135-mdwigley branch October 17, 2025 19:58
@mdwigley mdwigley added the approved Change issue has been accepted for implementation label Oct 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Change issue has been accepted for implementation

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Add IPluginResourceIncludes for Avalonia Resources

1 participant