aboutsummaryrefslogtreecommitdiff
path: root/rprt.md
diff options
context:
space:
mode:
authortslil <tslil@posteo.de>2025-10-20 20:34:04 +0100
committertslil <tslil@posteo.de>2025-10-20 22:23:02 +0100
commitcaf3cbdd94ec8341f3233bb31c04c72f99502ed9 (patch)
tree774b8433258338fe57feda77d7691bc4ee4a9b1a /rprt.md
parentd05f62b20fe5ce0d7fa47f2188197912cf9436f6 (diff)
Changed monad, impl. some grouped semantics, not completely satisfied
Diffstat (limited to 'rprt.md')
-rw-r--r--rprt.md7
1 files changed, 5 insertions, 2 deletions
diff --git a/rprt.md b/rprt.md
index 394f994..ec65a45 100644
--- a/rprt.md
+++ b/rprt.md
@@ -138,9 +138,12 @@ The grouping operator `{}` provides transactional semantics: all operations with
**Syntax:** `{ op₁ , op₂ , ... , opₙ }`
**Semantics:**
-- Captures editor state on entry
-- All operations execute with the original positions
+- All operations compute addresses in the original, unmodified editor state
+- Changes are validated before application: they must be "in sequence" (non-overlapping and monotonically ordered on position)
+- Successive insertions at the same position are concatenated in order
+- Changes are applied atomically after all operations complete
- Returns the union of all resulting Selections
+- Any validation failure aborts the entire group
# 1.7 Composition and Parsing