microsoft / microsoft/terminal
Implement inheritance/layering behavior for settings lists/maps
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 105k
- Forks
- 9.6k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 29
Description
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...
- #7175 Action IDs
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the inheritance work in Spec #7876 and implementation #7923, then inspect the object model handling for action and color-scheme lists/maps. Done means preserving each item's origin through inheritance and layering actions over inherited values, enabling the blocked serialization and Settings UI work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- cli, desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100