Skip to content

query language

Robin Schreiber edited this page Mar 24, 2023 · 2 revisions

2023-03-23

Wir entdecken Probleme mit anonymen Morphs und deren Submorphs in Komponentendefinitionen, erwΓ€gt eine Query-Language fΓΌr Submorphs und berΓΌcksichtigt dabei den "gitbaren" Output der direkten Manipulation sowie die KomplexitΓ€t der Reconciliation.

Kontext

Robin stellt fest, dass "anonyme Morphs" in Komponentendefinitionen, wie wir sie vor kurzem erlaubt haben, programmatisch selbst nicht in Ableitungen überschrieben werden kânnen. Schlimmer kommt noch hinzu, dass auch all ihre Submorphs für programmatische Überschreibungen nicht mehr in Frage kommen, da das System bisher eine Navigation der Submorphs auf Namensebene erzwingt. Die Specs generieren intern "Namen", weshalb das für die graphische Manipulation kein Problem darstellt.

Wir stellen fest, dass der use-case fΓΌr "anonyme Morphs" ohnehin Wrapper aus LayoutgrΓΌnden sind, die nicht ΓΌberschrieben werden kΓΆnnen mΓΌssen. Wir stellen außerdem fest, dass unser Ziel in erster Instanz nicht unbedingt die Γ„quivalenz zwischen direct manipulation workflow und coding ist, sondern es um einen "gitbaren" Output der direct manipulation geht.

Query Language

DarΓΌber kommen wir auf die Idee einer Query-Language fΓΌr Submorphs. Sie wΓΌrde es erlauben, anstatt nur anhand von Namen durch Submorphs zu navigieren, programmatisch einfacher auf Submorphs zuzugreifen.

Wir müssen bei der Arbeit mit Komponenten darauf achten, welche Use-Cases es für eine solche Sprache gÀbe. Bisher scheint der hauptsÀchliche use-case zu sein, sich beim programmatischen Überschreiben von tiefen Submorphs gegen eine Verschiebung von großen Teilen der Hierarchie abzusichern.

Jede Implementierung einer solchen MΓΆglichkeit macht die Reconciliation komplexer.

Syntax Ideen

component(...).match(query, {overridenProps}) // can we also use this for add() and remove()?

const query = "*/*/name"

Clone this wiki locally