move from fixed flags to list of tags (matching command list evaluation names) for context menu command filtering; pull out code for filling command regs from contextual expressions; add mechanism for contextualizing a whole query, so that we can spawn command listers within the context of some other evaluation, which we'd like to fill registers with (e.g. right-clicking a module -> spawn a module command list, contextualized by the module evaluation itself

This commit is contained in:
Ryan Fleury committed 2026-06-10 09:54:57 -07:00
1 parent 1577ea5693
commit f7ba4b2ebe
10 files changed
+614 -515

No files matched your search

+19
View File
@@ -1972,6 +1972,25 @@ rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_fla
return result;
}
//- rjf: cell -> fill registers via context
internal RD_RegSlot
rd_regs_fill_slot_from_cell_ctx(String8 root_ctx_expr, EV_Row *row)
{
RD_RegSlot ctx_filled_reg_slot = RD_RegSlot_Null;
if(ctx_filled_reg_slot == RD_RegSlot_Null) { ctx_filled_reg_slot = rd_regs_fill_slot_from_ctx_eval(row->eval); }
for(EV_Block *block = row->block; block != &ev_nil_block && ctx_filled_reg_slot == RD_RegSlot_Null; block = block->parent)
{
ctx_filled_reg_slot = rd_regs_fill_slot_from_ctx_eval(block->eval);
}
if(ctx_filled_reg_slot == RD_RegSlot_Null)
{
E_Eval root_ctx_eval = e_eval_from_string(root_ctx_expr);
ctx_filled_reg_slot = rd_regs_fill_slot_from_ctx_eval(root_ctx_eval);
}
return ctx_filled_reg_slot;
}
//- rjf: table coordinates -> text edit state
internal RD_WatchViewTextEditState *