Variables tab instead of the List tab, lists shown inline #252

Closed
opened 2026-09-27 21:21:25 +02:00 by meleki · 1 comment
Owner

The List tab shows one list and nothing else. A list in the inspector is only an item count that leads there. This replaces both.

Lists inline

  • A list shows its items right where it stands: in the inspector, in a struct, in another list. Each item is a row with index, kind mark, value and a delete button, as in the List tab today. A list inside a list is drawn inline again, one step indented.
  • The list head carries the count, + Item and a button that opens the list in its own tab.
  • In the inspector a long list shows its first 20 items, then "... N more". The tab shows all of them.
  • An unconnected list input of a node is inline only, without the button.
  • While a game runs, a list a graph fills follows the run (as in #251).

Variables tab

  • Opens from a button in the VARIABLES header of the inspector, for a behavior asset, a Variables asset and a placed behavior object.
  • Shows every variable of that owner with the same rows as the inspector: declarations editable on the asset, overrides with reset/apply on a placed object, live values while a game runs.
  • Titles: <asset> · Variables, <object> · Variables, and for a list <owner> · <variable> · <path>.
  • The open button of a list, also of a list inside a tab, opens a new tab. It never replaces the tab it was clicked in. A list that is already open in a tab brings that tab up.

Goes away

  • The List tab with its one slot (openList, listSlot, the list document) and the __gm.list hook. The e2e checks that used it move to the new tab and the inline rows.

Tests

  • Unit tests for the rules (limit, which list a tab shows, document ids).
  • e2e with a real mouse: inline edit in the inspector, open in tab, sub-list opens a second tab, object variables with override, live list in a run.
  • Wiki pages that talk about the List tab.
The List tab shows one list and nothing else. A list in the inspector is only an item count that leads there. This replaces both. ## Lists inline - A list shows its items right where it stands: in the inspector, in a struct, in another list. Each item is a row with index, kind mark, value and a delete button, as in the List tab today. A list inside a list is drawn inline again, one step indented. - The list head carries the count, `+ Item` and a button that opens the list in its own tab. - In the inspector a long list shows its first 20 items, then "... N more". The tab shows all of them. - An unconnected list input of a node is inline only, without the button. - While a game runs, a list a graph fills follows the run (as in #251). ## Variables tab - Opens from a button in the VARIABLES header of the inspector, for a behavior asset, a Variables asset and a placed behavior object. - Shows every variable of that owner with the same rows as the inspector: declarations editable on the asset, overrides with reset/apply on a placed object, live values while a game runs. - Titles: `<asset> · Variables`, `<object> · Variables`, and for a list `<owner> · <variable> · <path>`. - The open button of a list, also of a list inside a tab, opens a **new** tab. It never replaces the tab it was clicked in. A list that is already open in a tab brings that tab up. ## Goes away - The List tab with its one slot (`openList`, `listSlot`, the `list` document) and the `__gm.list` hook. The e2e checks that used it move to the new tab and the inline rows. ## Tests - Unit tests for the rules (limit, which list a tab shows, document ids). - e2e with a real mouse: inline edit in the inspector, open in tab, sub-list opens a second tab, object variables with override, live list in a run. - Wiki pages that talk about the List tab.
Author
Owner

Done in 4857bb7.

  • Lists show their items right under their row: in the inspector, in struct fields and in the new Variables tab. Lists inside lists or struct fields are drawn the same way, one step indented. The index column is the indent (16 px).
  • Above 20 items the rest collapses into "… N more - open in tab". During a run the rows show the values from the game.
  • "N items" opens the list in its own tab, "+ Item" sits next to it.
  • Open next to VARIABLES opens all variables of a behavior asset, a variables asset or a placed behavior in a tab. On an asset the declarations can be edited there. On a placed object an edit only overrides that object.
  • Opening a list inside a tab adds a new tab and keeps the open one. A list that is already open is shown, not opened twice. Titles like Pickup · Variables or Listy · nums · [3]. The tab closes when its asset or object is deleted.
  • Lists on node inputs stay inline only.
  • The List tab and the __gm.list hook are gone.

Tests: ./check.sh 181 files, 2645 tests, CHECK EXIT 0. e2e GM_STEPS=1,21,22,32 ALL PASSED, 123 checks. Four counter-probes fail as expected (sub-list not told apart, sub-list replacing the open tab, all items drawn inline, no live values).

Wiki: Behaviors, Architecture, Development (wiki commit 40027db).

Done in 4857bb7. - Lists show their items right under their row: in the inspector, in struct fields and in the new Variables tab. Lists inside lists or struct fields are drawn the same way, one step indented. The index column is the indent (16 px). - Above 20 items the rest collapses into "… N more - open in tab". During a run the rows show the values from the game. - "N items" opens the list in its own tab, "+ Item" sits next to it. - **Open** next to VARIABLES opens all variables of a behavior asset, a variables asset or a placed behavior in a tab. On an asset the declarations can be edited there. On a placed object an edit only overrides that object. - Opening a list inside a tab adds a new tab and keeps the open one. A list that is already open is shown, not opened twice. Titles like `Pickup · Variables` or `Listy · nums · [3]`. The tab closes when its asset or object is deleted. - Lists on node inputs stay inline only. - The List tab and the `__gm.list` hook are gone. Tests: `./check.sh` 181 files, 2645 tests, CHECK EXIT 0. e2e `GM_STEPS=1,21,22,32` ALL PASSED, 123 checks. Four counter-probes fail as expected (sub-list not told apart, sub-list replacing the open tab, all items drawn inline, no live values). Wiki: Behaviors, Architecture, Development (wiki commit 40027db).
admin added this to the Development project 2026-09-27 22:17:06 +02:00
admin moved this to Done in Development on 2026-09-27 22:17:50 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#252