3
0
mirror of https://github.com/larvit/adf-codec.git synced 2026-11-12 11:48:29 +01:00
Commit Graph

281 Commits

Author SHA1 Message Date
lilleman e040d1d3ef Spell every document the emitter refused for a carriage return, a null character, a code-span line start or an empty text node 2026-10-04 20:29:29 +02:00
lilleman 95e1ccc4c1 Record the guards' input boundary and Goal 8's size as JSON, and drop the hardening past it 2026-10-04 19:18:55 +02:00
lilleman 576e1641f9 Answer stability round 3: walk an array's elements as the guards do 2026-10-04 17:18:03 +02:00
lilleman fd620b4975 Answer stability round 2: refuse a node or mark holding a key it does not own 2026-10-04 17:12:46 +02:00
lilleman 3c73a23689 Answer product-owner round 1: name the cycle in its own message and in the error table 2026-10-04 17:03:21 +02:00
lilleman 7d1412307b Answer security round 1: clean 2026-10-04 17:03:21 +02:00
lilleman 7be73254ea Refuse a cyclic input as not-an-adf-document 2026-10-04 16:57:51 +02:00
lilleman bc4b65501b Reword the isBareText and adfNodes comments 2026-10-03 17:52:56 +02:00
lilleman 147fd21049 Join only content-free text nodes in editor-normal ADF, type checked first: adfToPlainMarkdown on 3,000 extension blocks of 200-key parameters 1,752-1,941 ms → 1,034-1,240 ms (1,018-1,283 ms at 608ef26) 2026-10-03 17:52:52 +02:00
lilleman 460f728a0f Keep an empty doc content in editor-normal ADF, as the schema requires 2026-10-03 16:22:54 +02:00
lilleman ead2e7f4b7 Give the unmarked bare text check and the text-holding-content refusal one owner each 2026-10-03 16:22:19 +02:00
lilleman 85f1063c7b Name the reader's own-marks items for what they hold, and drop the carry flag the items already say 2026-10-03 16:21:49 +02:00
lilleman 890ae4ef15 Keep near-miss text pairs apart in the property harness: merge only what the reader joins 2026-10-03 16:21:06 +02:00
lilleman c3ac8edb76 Hold the editor's join rule in plain/editor-normal.ts as the reader's over editor-normal forms 2026-10-03 16:19:55 +02:00
lilleman 72f919ae04 Rename isPlainText to isBareText, apart from the plain flavour, and say truly what it admits 2026-10-03 16:19:09 +02:00
lilleman 95bad0ff90 Prose round 3: retitle the floor decision, put the plain/ exception first, sharpen items 59-62 2026-10-03 16:11:56 +02:00
lilleman 410665e2d3 Name the emitter's block walk PlacedBlocks, apart from the parser's Walk 2026-10-03 15:52:43 +02:00
lilleman 84a0750397 Keep 'carry' for the opaque carry: holdsOnlyAttributes, spellEdgeWhitespace, bothCommonMark 2026-10-03 15:52:19 +02:00
lilleman 4e6a4b5ac4 Name the two text-joining rules for whose rule they are, side by side in adjacent-text.ts 2026-10-03 15:51:41 +02:00
lilleman acc8227598 Gather the plain flavour's code in markdown/plain/ 2026-10-03 15:50:24 +02:00
lilleman a71c98babd Final wording: the reserved-directive refusal row, the adf:-alone fence, the changelog's carry and scope, the developer panel, the migration's empty shape 2026-10-03 15:17:53 +02:00
lilleman 4409d5befc Reword the attrs=empty and language-placement refusals, quoting a language that needs it 2026-10-03 15:17:40 +02:00
lilleman af98e9cbdc Trim two comments 2026-10-03 15:12:54 +02:00
lilleman 91879d01b1 Lead the code block, empty-key, carry fence, text break and carry-in-mark refusals with their fix 2026-10-03 15:12:51 +02:00
lilleman 1d6a6b0914 Name the code block wrapper in the two carry-fence refusals that lacked it 2026-10-03 15:05:51 +02:00
lilleman d912bf1c9f Lead the refusals ordinary editing meets with the edit that fixes them 2026-10-03 15:05:36 +02:00
lilleman b28c3e2590 Inline the identity blocks() helper in the plain reader tests 2026-10-03 15:04:15 +02:00
lilleman d1ceabb377 Drop the as const on the doc directive's attribute 2026-10-03 15:04:11 +02:00
lilleman be691e56d7 Refuse attrs=empty on a code block whose fences carry its language 2026-10-03 15:03:58 +02:00
lilleman 95bd4a9d01 Keep format knowledge out of mergeAdjacentText's comment 2026-10-03 14:46:29 +02:00
lilleman 6dd25f8f6a Drop empty keys in the property harness through emptyKeys 2026-10-03 14:46:29 +02:00
lilleman c1fe5f133e Read a carry fence's type in one function 2026-10-03 14:45:48 +02:00
lilleman 5701123943 Spell the doc directive's content=none through spellAttributes from one constant 2026-10-03 14:45:28 +02:00
lilleman 9d043924e7 Derive a block directive's empty content from its node, and let readEmptyKeys own the attrs=empty-stands-alone rule 2026-10-03 14:45:12 +02:00
lilleman 6a54757839 Spell 'a text node holding its text and marks alone' once, as isPlainText 2026-10-03 14:44:00 +02:00
lilleman 05c1728173 Hold a carried node's own marks on the item, not in a side set copies fall out of 2026-10-03 14:43:03 +02:00
lilleman ae19cdae1b Take the raw run's refusal path only where its code matches the editor-normal refusal 2026-10-03 14:41:42 +02:00
lilleman 213b7c2d3f Name the adf: fence among the carve-outs, and the way a fence stays code in its errors 2026-10-03 14:41:30 +02:00
lilleman b34f9309f4 Set up every inline scan through one freshScan 2026-10-03 14:33:06 +02:00
lilleman 8958eab08e Write the same plain markdown for documents the editor holds equal: normalize the reduction's input again, naming a refusal by the caller's document 2026-10-03 14:32:34 +02:00
lilleman 767d57f8df Say only the plain writer is editor-normal, and read plain markdown in the tests without normalizing 2026-10-03 14:23:04 +02:00
lilleman 6b18aefedc Index a plain refusal's path in the caller's document: normalize only the reduction's output 2026-10-03 14:22:14 +02:00
lilleman 4b12951e38 Refuse a carry fence naming a type no info string carries back 2026-10-03 14:20:47 +02:00
lilleman b78d841b34 Carry the text break as its own item, not a fake node, and check it where the outermost content resolves 2026-10-03 14:19:55 +02:00
lilleman 3aa693d2a1 Keep one merge loop and one mark key: editor-normal compares normalized marks with identicalMark 2026-10-03 14:17:22 +02:00
lilleman f44cbecd9b Record deep equality, the text break, empty keys, -0, the typed carry fence and per-node code fences; file items 52 and 53 2026-10-03 12:28:20 +02:00
lilleman 039aac8873 Make markdownToAdf(adfToMarkdown(doc)) deep-equal doc: textBreak, empty keys, -0, typed carry fences, code blocks of several text nodes 2026-10-03 12:25:01 +02:00
lilleman b6a4619832 Rewrap two lines past 100 columns 2026-10-02 17:41:07 +02:00
lilleman 0653c19523 Answer the prose and product-owner reviews' first round 2026-10-02 17:39:25 +02:00
lilleman d22353f8f2 Goals become one-line aims, their detail moves to the sections that meet them 2026-10-02 17:34:17 +02:00