always prefer explicitly attached tags (view rules); give all tags a chance in sequence; allow 'default' to be explicitly attached, to disable auto-view-rules etc.

This commit is contained in:
Ryan Fleury
2025-02-20 16:38:27 -08:00
parent ec782fa39c
commit 428a3f2536
6 changed files with 28 additions and 25 deletions
@@ -489,16 +489,6 @@ ev_keyed_expr_push_tags(Arena *arena, EV_View *view, EV_Block *block, EV_Key key
}
}
// rjf: push explicitly-attached tags (via key) next
String8 tag_expr = push_str8_copy(arena, ev_view_rule_from_key(view, key));
E_TokenArray tag_expr_tokens = e_token_array_from_text(scratch.arena, tag_expr);
E_Parse tag_expr_parse = e_parse_expr_from_text_tokens(arena, tag_expr, &tag_expr_tokens);
for(E_Expr *tag = tag_expr_parse.exprs.first, *next = &e_expr_nil; tag != &e_expr_nil; tag = next)
{
next = tag->next;
e_expr_push_tag(expr, tag);
}
// rjf: push tags inferred from the type
{
E_IRTreeAndType irtree = e_irtree_and_type_from_expr(scratch.arena, expr);
@@ -508,6 +498,16 @@ ev_keyed_expr_push_tags(Arena *arena, EV_View *view, EV_Block *block, EV_Key key
e_expr_push_tag(expr, e_expr_copy(arena, n->v));
}
}
// rjf: push explicitly-attached tags (via key) next
String8 tag_expr = push_str8_copy(arena, ev_view_rule_from_key(view, key));
E_TokenArray tag_expr_tokens = e_token_array_from_text(scratch.arena, tag_expr);
E_Parse tag_expr_parse = e_parse_expr_from_text_tokens(arena, tag_expr, &tag_expr_tokens);
for(E_Expr *tag = tag_expr_parse.exprs.first, *next = &e_expr_nil; tag != &e_expr_nil; tag = next)
{
next = tag->next;
e_expr_push_tag(expr, tag);
}
}
scratch_end(scratch);
}