Implement inheritance/layering behavior for settings lists/maps #11218

Open
opened 2026-01-31 02:41:48 +00:00 by claunia · 4 comments
Owner

Originally created by @carlos-zamora on GitHub (Oct 29, 2020).

Description of the new feature/enhancement

TSM Inheritance (Spec #7876 + Impl #7923 ) enabled an object model representation of layering JSON. Some settings that are saved to arrays/maps (i.e. actions, color schemes) still experience a special form of layering that is not represented in the object model.

Today, the object model std::moves the list of actions/schemes down child-by-child, and directly modifies those values. We need to restructure this system to...

  • track where an action/color scheme came from
  • layer actions over other actions

This blocks the following work items:

  • serialization for actions
  • Settings UI implementation for actions
  • serializing only new color schemes (ones not from defaults.json)

This also is partially related to...

Originally created by @carlos-zamora on GitHub (Oct 29, 2020). # Description of the new feature/enhancement TSM Inheritance (Spec #7876 + Impl #7923 ) enabled an object model representation of layering JSON. Some settings that are saved to arrays/maps (i.e. actions, color schemes) still experience a special form of layering that is not represented in the object model. Today, the object model `std::move`s the list of actions/schemes down child-by-child, and directly modifies those values. We need to restructure this system to... - track where an action/color scheme came from - layer actions over other actions This blocks the following work items: - serialization for actions - Settings UI implementation for actions - serializing only _new_ color schemes (ones not from defaults.json) This also is partially related to... - #7175 Action IDs
claunia added the Area-SettingsIssue-TaskProduct-Terminal labels 2026-01-31 02:41:48 +00:00
Author
Owner

@carlos-zamora commented on GitHub (Feb 11, 2021):

Moved this to backlog because this is more related to #8991 and #6900. So it's not extremely urgent right now.

@carlos-zamora commented on GitHub (Feb 11, 2021): Moved this to backlog because this is more related to #8991 and #6900. So it's not extremely urgent right now.
Author
Owner

@carlos-zamora commented on GitHub (May 12, 2021):

#9621 solves most of the problem here.

The remaining work to be done is for color schemes.

@carlos-zamora commented on GitHub (May 12, 2021): #9621 solves most of the problem here. The remaining work to be done is for color schemes.
Author
Owner

@zadjii-msft commented on GitHub (Feb 27, 2024):

@DHowett So, I think #12800 closes out the last bit of this? This issue was written long before Leonard re-wrote the settings parser, so I don't think it's relevant anymore?

@zadjii-msft commented on GitHub (Feb 27, 2024): @DHowett So, I think #12800 closes out the last bit of this? This issue was written long before Leonard re-wrote the settings parser, so I don't think it's relevant anymore?
Author
Owner

@DHowett commented on GitHub (Feb 27, 2024):

I'm still somewhat uncomfortable with this -- we are still doing flat mapping of things that come from different layers, we're just doing it more cleverly with 12800. Themes aren't touched at all, so they are still flat-mapped.

@DHowett commented on GitHub (Feb 27, 2024): I'm still somewhat uncomfortable with this -- we are still doing flat mapping of things that come from different layers, we're just doing it more _cleverly_ with 12800. Themes aren't touched at all, so they are still flat-mapped.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#11218