clarify what jxr actually is and what can it do #52

Open
opened 2 years ago by utopiah · 10 comments
Owner

Basically relying on eval() thus able to run JavaScript within the current scope.

parseJXR() takes a string representing the code and expand shorthands including :

  • Xs starting the following command in X seconds
  • qs selector returing a querySelector(selector)
  • sa attribute value for setAttribute(attribute, value)
  • obsv for newNoteFromObservableCell()
  • lg for addGltfFromURLAsTarget()

These shorthands are relatively verbose functions that are estimated to be quite useful in this specific context of having text and code in a spacial environment, editable with a virtual and optionally physical keyboard.

Basically relying on `eval()` thus able to run JavaScript within the current scope. `parseJXR()` takes a string representing the code and expand shorthands including : * `Xs` starting the following command in X seconds * `qs selector` returing a `querySelector(selector)` * `sa attribute value` for `setAttribute(attribute, value)` * `obsv` for `newNoteFromObservableCell()` * `lg` for `addGltfFromURLAsTarget()` These shorthands are relatively verbose functions that are estimated to be quite useful in this specific context of having text and code in a spacial environment, editable with a virtual and optionally physical keyboard.
utopiah added the
documentation
label 2 years ago
Poster
Owner

Note that interpretAny() requires a backend and thus is executed with a different scope. It allows code that is not JavaScript to be executed. Examples include containers with other languages e.g Bash, Python or Julia.

See https://twitter.com/utopiah/status/1533064468292419585

For now the result is only displayed and is only from text to text. See https://twitter.com/utopiah/status/1562501178495082496 suggesting toDataURL() for other kind of contents.

Note that `interpretAny()` requires a backend and thus is executed with a different scope. It allows code that is not JavaScript to be executed. Examples include containers with other languages e.g Bash, Python or Julia. See https://twitter.com/utopiah/status/1533064468292419585 For now the result is only displayed and is only from text to text. See https://twitter.com/utopiah/status/1562501178495082496 suggesting `toDataURL()` for other kind of contents.
Poster
Owner

Consider minimizing syntax and instead rely on provenance.

For example instead of relying on e.g ./ as suggested in #50 rely instead on the presence of the webdav class.

Consider minimizing syntax and instead rely on provenance. For example instead of relying on e.g `./` as suggested in https://git.benetou.fr/utopiah/text-code-xr-engine/issues/50 rely instead on the presence of the `webdav` class.
Poster
Owner

Rely on spacialized interaction specific keywords e.g

  • lastpinched
  • nextpinched
  • draggedon
Rely on spacialized interaction specific keywords e.g * lastpinched * nextpinched * draggedon
Poster
Owner

Provide syntax highlighting.

Provide syntax highlighting.
Poster
Owner

Existing

  • DOM element selectedElement
  • DOM element : lastPointSketch from draw()
  • string array : commandhistory
  • DOM element array : groupSelection
  • DOM element array : targets
Existing * DOM element `selectedElement` * DOM element : `lastPointSketch` from `draw()` * string array : `commandhistory` * DOM element array : `groupSelection` * DOM element array : `targets`
Poster
Owner

Search for DSL (domain specific language) on text or text manipulation, ideally spatially.

Potential example https://dougengelbart.org/images/about/augment/chart-viewspecs.htm (arguable)

Search for DSL (domain specific language) on text or text manipulation, ideally spatially. Potential example https://dougengelbart.org/images/about/augment/chart-viewspecs.htm (arguable)
Poster
Owner
See also `<a-console>` helpers https://github.com/kylebakerio/a-console/blob/master/a-console.js#L307 for https://github.com/kylebakerio/a-console#live-coding
Poster
Owner

Responsive programming as a design principle, cf https://fabien.benetou.fr/Languages/OwnConcepts#ResponsiveProgramming , i.e surfacing the code itself, creating an affordance back.

Responsive programming as a design principle, cf https://fabien.benetou.fr/Languages/OwnConcepts#ResponsiveProgramming , i.e surfacing the code itself, creating an affordance back.
Poster
Owner

See the onreleased event introduced in list-editing branch https://git.benetou.fr/utopiah/text-code-xr-engine/src/branch/list-editing/index.html#L86

See the `onreleased` event introduced in list-editing branch https://git.benetou.fr/utopiah/text-code-xr-engine/src/branch/list-editing/index.html#L86
Poster
Owner

Example for clipboard jxr qs #billboard sa scale 1 1 1

Example for clipboard `jxr qs #billboard sa scale 1 1 1`
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: utopiah/text-code-xr-engine#52
Loading…
There is no content yet.