Opened at 2017-03-18T16:42:19Z
Last modified at 2022-10-21T22:02:27Z
#1094 new planned
allow for partially closed commands
| Reported by: | Ichthyostega | Owned by: | Ichthyostega |
|---|---|---|---|
| Priority: | lesser | Milestone: | 2beta |
| Component: | lumieraSteam | Keywords: | data design interfaces sanity |
| Sub Tickets: | #967, #988, #990, #1089, #1095 | Parent Tickets: | #144, #301, #1087 |
Description (last modified by )
The Steam-Layer commands are functors with a well defined signature.
Later in the command usage cycle, actual arguments will be supplied by the UI, which implies to clone from the original command definition prototype. In this context it seems natural that you'd want to create several variations from some base command, just by closing some, but not all arguments. However, the described feature is an advanced and challenging task to implement, because you'd have to create a new command definition, where all functor signatures have been rewritten to omit the allready closed argument. So this involves some solid amount of metaprogramming, since all this "rewriting of signature" need to happen in the compilation process. In fact, we have all the necessary tools for this task in our code base, since we indeed do rebuild function signatures to derive the expected signature of command capture and command undo functors. Yet still, you'd have to hook deep into the command framework, and you'd need to revamp our function tools somewhat to make use of the partial closure facility implemented there. This area of the code needs a rework anyway (see #967) to be retrofitted with the now standardised tuple type of the language.
The expecation is that this feature might become urgent in the rather far future, when our UI is already quite elaborate and we start to introduce flavours and variations of existing functionality.
Change history (3)
comment:1 by , at 2017-03-18T16:52:14Z
| blockedby: | 988, 990, 967, 1089 → 967, 988, 990, 1089, 1095 |
|---|
comment:2 by , at 2022-10-21T22:02:27Z
| Description: | modified (diff) |
|---|
comment:3 by , at 2025-12-25T00:00:00Z
| blockedby: | 967, 988, 990, 1089, 1095 |
|---|---|
| blocking: | 144, 301, 1087 |
| Parent Tickets: | → 144, 301, 1087 |
| Sub Tickets: | → 967, 988, 990, 1089, 1095 |

Migration MasterTickets ⟼ Subtickets-plugin