Accepted Artifact for "Hybrid Structured Editing: Structures for Tools, Text for Users"

Read full text
Authors: Tom Beckmann, Christoph Thiede, Jens Lincke, Robert Hirschfeld
Cited by: 0

Abstract

The accepted artifact for the journal article "Hybrid Structured Editing: Structures for Tools, Text for Users" published in Volume 11, Issue 1 of The Art, Science, and Engineering of Programming. Getting Started 0. Download artifact. (sha256sum: 78caf9f4c0dc9f3c0a70ad171ef45fc3572ed6869afb51b099384ffc433d2994)1. Run `docker image load < hybridse.tar.gz`, then `docker run -p 8080:9005 lively4-artifact`2. Open the three platforms (tested on Chrome 142.0.7444.175): a. Open [http://localhost:8080/lively4-core/start.html?load=http://localhost:8080/sandblocks-text-artifact/lively-demo.md]() in a browser. Then, click into the nested URL bar that ends with `/lively-demo.md` and press Return to reload the nested page. Now, you should see a file browser-like interface on the left with an editor on the right. b. Open [http://localhost:8080/sandblocks-text-artifact/squeak-demo/squeak.html]() in a browser, which should load a Squeak image and eventually display a small editor widget with a dark gray watch. c. Open [http://localhost:8080/sandblocks-text-artifact/dist-demo/index.html]() in a browser, which should show a list of demos. Overview of Claims Since the steps to reproduce our claims are short, we merged the step-by-step instructions with the list of claims for a better overview. Claim: Section 4.1 --- Structure Tracking - temporary syntax errors leave tools intact- cut-pasting text with embedded tools recovers tools To reproduce:1. Open 2c of "Getting Started".2. In the watch example at the top, select from outside the watch to the multiplication sign (`3 +| WATCH(2 + 2) *| 4`).3. Invoke the Web Browser's cut shortcut (Ctrl/Cmd+x or right-click). The Watch should remain in the text buffer and a notice should appear that there are pending changes.4. Navigate to the start of the file (before the 3).5. Invoke the Web Browser's paste (Ctrl+Cmd v or right-click). The watch should move to the start and the pending changes notice should disappear.6. Insert syntax errors near the watch (e.g., add a `2` just before the watch element) and observe the pending changes notice appearing until the expression is valid again (e.g., add a `+` after the just-inserted `2`). Claim: Section 4.2 --- Nested Editors - leading and trailing whitespace characters are trimmed when there is only one whitespace character- indentation can be removed To reproduce leading/trailing whitespace handling:1. Open 2c of "Getting Started".2. In the "Watch" example, observe that there is no trailing or leading whitespaces inside the watch. Then add a space to the right of the `2 + 2` expression, inside the watch, and continue typing `+ 3`. Notice that as soon as there is a second space (the one you added inside the watch), it is displayed. (Note that when adding a space on the left edge of the watch's expression, two spaces will appear -- the second space is pulled in from the outer expression, as the heuristic only omits single trailing or leading spaces.) To reproduce indentation removal:1. Open 2c of "Getting Started".2. In the "Browser" example, select the "constructor" method. Its base indentation has been replaced with a tab-icon. Claim: Section 4.3 --- Structured Access - 4.3.1 support for accessing dynamic information- 4.3.3 support for inserting, replacing, and deleting program structures 1. Open 2c of "Getting Started". The website includes the "Watch" case study, which makes use of dynamic information, and three editing scenarios.2. Watch: try changing the expression to observe the change in the user interface to reflect the changed expression's result.3. Editing Scenarios: inspect the three editing scenarios, shown here as code snippets that use the API that we provide to users of the framework. The scenarios are editable and are re-evaluated on change. Claim: Section 5 --- Platform Support - Codemirror v6 implementation- lively4 implementation (note that in lively4, code does not run on change but you have to select code and hit cmd/ctrl+d)- Squeak/Smalltalk implementation To reproduce:1. Follow the instructions for "Getting Started", which allows to open all three implementations. Claim: Section 6 --- Case Studies - Section 6.1: Placeholder- Section 6.2: Composing Languages- Section 6.3: Browser- Section 6.4: Livelits 1. Open 2c of "Getting Started". The website includes the four case studies described in Section 6.

Fields of Study & Subjects

Web Applications and Data Management Spreadsheets and End-User Computing Teaching and Learning Programming

Publication details

Journal / source
Zenodo (CERN European Organization for Nuclear Research)
Publication date
2 February 2026