-
Notifications
You must be signed in to change notification settings - Fork 18
query language
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.
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.
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.
component(...).match(query, {overridenProps}) // can we also use this for add() and remove()?
const query = "*/*/name"