Palette exact match #43

Closed
opened 2026-09-12 15:03:59 +02:00 by meleki · 2 comments
Owner

Node-Palette: Treffer im Namen vor Treffern in der Beschreibung ziehen.

Stand: sortiert wird nach Kategorie, dann alphabetisch; gesucht wird auch in Typ und Beschreibung. Suche "variable" + Enter landet deshalb auf Run behavior (Kategorie flow, Beschreibung enthält "variables"), nicht auf Variables.


Übernommen aus todo-notes/palette-exact-match.md beim Umzug auf das Issue-System (2026-09-12).

  • Angelegt: 2026-09-11 · bf41919 — Add todo notes for the next round of features, gaps and upkeep
  • Gemeldet von: Claude (Assistent)
Node-Palette: Treffer im Namen vor Treffern in der Beschreibung ziehen. Stand: sortiert wird nach Kategorie, dann alphabetisch; gesucht wird auch in Typ und Beschreibung. Suche "variable" + Enter landet deshalb auf `Run behavior` (Kategorie flow, Beschreibung enthält "variables"), nicht auf `Variables`. --- *Übernommen aus `todo-notes/palette-exact-match.md` beim Umzug auf das Issue-System (2026-09-12).* - **Angelegt:** 2026-09-11 · `bf41919` — Add todo notes for the next round of features, gaps and upkeep - **Gemeldet von:** Claude (Assistent)
meleki added the todo-note label 2026-09-12 15:03:59 +02:00
admin added the low-priority label 2026-09-12 18:14:31 +02:00
admin added this to the Development project 2026-09-13 13:30:08 +02:00
admin removed this from the Development project 2026-09-13 13:30:59 +02:00
admin added this to the Development project 2026-09-13 13:45:43 +02:00
admin moved this to Next in Development on 2026-09-15 09:15:12 +02:00

außerdem könnte man gleich die sortierung beim "+ Assetmenü" machen:

image.png

was auch noch gut wäre: die maximale größe von allen dropdown nix fix sondern bis zur gesamt canvashöhe nach unten mit ein bisschen bottom margin.

außerdem könnte man gleich die sortierung beim "+ Assetmenü" machen: <img width="635" alt="image.png" src="attachments/29a3bf48-778e-46a5-bd4b-5564d62729f2"> was auch noch gut wäre: die maximale größe von allen dropdown nix fix sondern bis zur gesamt canvashöhe nach unten mit ein bisschen bottom margin.
Author
Owner

Umgesetzt in 3b03938, Wiki in 779c850.

1 · Palette exact match — die Rangfolge steckt jetzt in src/ui/search.ts (searchRank) und wird in paletteEntries.rankedEntries() angewandt: exakter Treffer auf Label oder Typ, dann Präfix auf dem Label, dann Label enthält, dann Typ, und ganz zuletzt ein Treffer, der nur in der Beschreibung steckt. Kategorie und Alphabet sortieren nur noch innerhalb eines Rangs. variable + Enter landet damit auf Variable statt auf Run behavior. Dasselbe searchRank benutzt das suchbare Menu, damit "suchen" im Editor überall dasselbe heißt.

2 · +-Menü sortiert — assetMenuGroups() (src/editor/panels/assetMenu.ts) liefert zwei alphabetische Gruppen mit Trennlinie dazwischen: erst die Typen, die in einer Szene landen, dann die, die in der Bibliothek bleiben — die Trennung, die isPlaceableType ohnehin schon zieht. ASSET_TYPES selbst bleibt unangetastet, das ist auch Serialisierungs- und Prüfreihenfolge. Eine Suche flacht die Gruppen ab und lässt die Linien weg.

3 · Höhe am Canvas statt an festen Zahlen — Popup.roomFor() misst das eigene Drumherum (Suchfeld, Kopf, Fußzeile, Padding) und nimmt die Fensterhöhe minus einem Zehntel an jedem Ende. Ersetzt die festen 320 (Menu), 260 (Palette) und 340 (Image-, Font-, Sound-Picker).

Die Platzierung klemmt dabei asymmetrisch: unten ist der Zehntel erzwungen, oben ist er nur Budget für die Höhe. Sonst würde ein Menü, das an einem Button nahe der Oberkante hängt, ins Band hinuntergeschoben und von seinem Button losgerissen — das +-Menü sitzt jetzt bei y = 71 direkt unter seinem Button statt bei 80.

Tests: npm run check grün, 85 Files / 1071 Tests (vorher 81 / 1050). Neu: tests/ui/search.test.ts, tests/ui/popup-placement.test.ts, tests/editor/palette-ranking.test.ts (gegen den echten Node-Katalog, inklusive des variable-Falls) und tests/editor/asset-menu.test.ts. Im Harness neu: __gm.menuRows() und __gm.graph.paletteRows() — hier ist die Reihenfolge die ganze Antwort, und keine Farbprüfung sieht eine Reihenfolge. Step 4 → 44 Checks, Step 6 → 105 Checks, beide grün.

Offen: der volle e2e-Lauf dreht noch; die Gesamtzahl in Development.md steht deshalb weiter auf 901 und wird nachgezogen, sobald der CI-Lauf auf 3b03938 seine Zahl liefert.

Umgesetzt in `3b03938`, Wiki in `779c850`. **1 · Palette exact match** — die Rangfolge steckt jetzt in `src/ui/search.ts` (`searchRank`) und wird in `paletteEntries.rankedEntries()` angewandt: exakter Treffer auf Label oder Typ, dann Präfix auf dem Label, dann Label enthält, dann Typ, und ganz zuletzt ein Treffer, der nur in der Beschreibung steckt. Kategorie und Alphabet sortieren nur noch *innerhalb* eines Rangs. `variable` + Enter landet damit auf `Variable` statt auf `Run behavior`. Dasselbe `searchRank` benutzt das suchbare `Menu`, damit "suchen" im Editor überall dasselbe heißt. **2 · `+`-Menü sortiert** — `assetMenuGroups()` (`src/editor/panels/assetMenu.ts`) liefert zwei alphabetische Gruppen mit Trennlinie dazwischen: erst die Typen, die in einer Szene landen, dann die, die in der Bibliothek bleiben — die Trennung, die `isPlaceableType` ohnehin schon zieht. `ASSET_TYPES` selbst bleibt unangetastet, das ist auch Serialisierungs- und Prüfreihenfolge. Eine Suche flacht die Gruppen ab und lässt die Linien weg. **3 · Höhe am Canvas statt an festen Zahlen** — `Popup.roomFor()` misst das eigene Drumherum (Suchfeld, Kopf, Fußzeile, Padding) und nimmt die Fensterhöhe minus einem Zehntel an jedem Ende. Ersetzt die festen 320 (Menu), 260 (Palette) und 340 (Image-, Font-, Sound-Picker). Die Platzierung klemmt dabei **asymmetrisch**: unten ist der Zehntel erzwungen, oben ist er nur Budget für die Höhe. Sonst würde ein Menü, das an einem Button nahe der Oberkante hängt, ins Band hinuntergeschoben und von seinem Button losgerissen — das `+`-Menü sitzt jetzt bei `y = 71` direkt unter seinem Button statt bei 80. **Tests:** `npm run check` grün, 85 Files / 1071 Tests (vorher 81 / 1050). Neu: `tests/ui/search.test.ts`, `tests/ui/popup-placement.test.ts`, `tests/editor/palette-ranking.test.ts` (gegen den echten Node-Katalog, inklusive des `variable`-Falls) und `tests/editor/asset-menu.test.ts`. Im Harness neu: `__gm.menuRows()` und `__gm.graph.paletteRows()` — hier ist die *Reihenfolge* die ganze Antwort, und keine Farbprüfung sieht eine Reihenfolge. Step 4 → 44 Checks, Step 6 → 105 Checks, beide grün. Offen: der volle e2e-Lauf dreht noch; die Gesamtzahl in `Development.md` steht deshalb weiter auf 901 und wird nachgezogen, sobald der CI-Lauf auf `3b03938` seine Zahl liefert.
admin moved this to Done in Development on 2026-09-15 11:53:16 +02:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#43