Host-side file reading, search, listing and versioned line editing.
cat and grep print a file version once and plain line numbers, which
patch consumes. One patch validates every edit before replacing one file.
list-directories supplies the Python ls shim. Standard Python owns file
creation, copying, moving and deletion.
Paths are confined to the session's allowed roots. Host operations also
consult extension-owned :fs/access gates.
Host-side file reading, search, listing and versioned line editing. `cat` and `grep` print a file version once and plain line numbers, which `patch` consumes. One patch validates every edit before replacing one file. `list-directories` supplies the Python `ls` shim. Standard Python owns file creation, copying, moving and deletion. Paths are confined to the session's allowed roots. Host operations also consult extension-owned `:fs/access` gates.
Unified-diff rendering and line accounting for versioned patches. Independent of the tool and activity namespaces.
Unified-diff rendering and line accounting for versioned patches. Independent of the tool and activity namespaces.
Unicode-escape hygiene for model-authored edit TEXT.
Public surface: decode-unicode-escapes — undo the \uXXXX drift a model
writes when it means the character itself, and nothing else.
Unicode-escape hygiene for model-authored edit TEXT. Public surface: `decode-unicode-escapes` — undo the `\uXXXX` drift a model writes when it means the character itself, and nothing else.
Versioned line addresses: the vocabulary cat and grep print and patch spends.
A file version is the first 8 hex chars of the SHA-256 of its UTF-8 text. A read
prints the version ONCE in its header (path @3f9a1c2b) and each line as a plain
number (131│ text). patch names that version and its line numbers. When the
file changed after the read, the edit is moved through a diff from the shown
version to the current file, and refused only when its own lines changed.
split-content-lines / char-offset-at-line blob <-> line/char coordinates
content-version / parse-version text -> version, input -> version
render-numbered-block / header [[ln text]…] -> N│ text rows
remember! / recall bounded cache of shown versions
note-shown! / shown-ranges / covers? the lines that each version showed
edit-span line span -> char span
Everything is pure except the cache. The cache holds the text of each version
that a read showed, keyed by canonical path and version, so a remap can diff
from it. It drops the oldest texts above store-max-chars.
Versioned line addresses: the vocabulary `cat` and `grep` print and `patch` spends. A file version is the first 8 hex chars of the SHA-256 of its UTF-8 text. A read prints the version ONCE in its header (`path @3f9a1c2b`) and each line as a plain number (`131│ text`). `patch` names that version and its line numbers. When the file changed after the read, the edit is moved through a diff from the shown version to the current file, and refused only when its own lines changed. split-content-lines / char-offset-at-line blob <-> line/char coordinates content-version / parse-version text -> version, input -> version render-numbered-block / header [[ln text]…] -> `N│ text` rows remember! / recall bounded cache of shown versions note-shown! / shown-ranges / covers? the lines that each version showed edit-span line span -> char span Everything is pure except the cache. The cache holds the text of each version that a read showed, keyed by canonical path and version, so a remap can diff from it. It drops the oldest texts above `store-max-chars`.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |