[PR #7923] Make Global and Profile settings inheritable #27027

Open
opened 2026-01-31 09:19:34 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/microsoft/terminal/pull/7923

State: closed
Merged: Yes


Summary of the Pull Request

Introduces IInheritable as an interface that helps move cascading settings into the Terminal Settings Model. GlobalAppSettings and Profile both are now IInheritable. CascadiaSettings was updated to CreateChild() for globals and each profile when we are loading the JSON data.

IInheritable does most of the heavy lifting. It introduces a two new macros and the interface. The macros help implement the fallback functionality for nullable and non-nullable settings.

References

#7876 - Spec Addendum
#6904 - TSM Spec
#1564 - Settings UI

#7876 - Copy() needs to be updated to include _parent

**Original Pull Request:** https://github.com/microsoft/terminal/pull/7923 **State:** closed **Merged:** Yes --- ## Summary of the Pull Request Introduces `IInheritable` as an interface that helps move cascading settings into the Terminal Settings Model. `GlobalAppSettings` and `Profile` both are now `IInheritable`. `CascadiaSettings` was updated to `CreateChild()` for globals and each profile when we are loading the JSON data. IInheritable does most of the heavy lifting. It introduces a two new macros and the interface. The macros help implement the fallback functionality for nullable and non-nullable settings. ## References #7876 - Spec Addendum #6904 - TSM Spec #1564 - Settings UI #7876 - `Copy()` needs to be updated to include _parent
claunia added the pull-request label 2026-01-31 09:19:34 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#27027