fix(plan): a list joiner no longer ends the read of a plain path below 1.9

Review finding 182ceb93.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-10-13 12:26:07 +02:00
commit 6b8b0e3f2a
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
2 changed files with 16 additions and 3 deletions

View file

@ -353,7 +353,8 @@ export function onFailureAction(text) {
* in src/parse.mjs") counts only where a list starts (after "and", "or", "+"
* or "&"). Right after the backticked path ("`a.test.mjs` src/b.mjs"), and in
* an entry not opened by one (", the CLI entry src/cli.mjs", round 7), it is
* read as before.
* read as before. A list joiner is no word of description: "`a.mjs` +
* `b.mjs` src/c.mjs" reads all three.
* - 6.4 / regression C: a new line that is no list item and holds only a
* backticked capitalised name ("`LICENSE`") ends the description, and the
* name is a file. On the description's own line it stays no file (round 10).
@ -449,7 +450,7 @@ export function fieldPaths(text) {
if (DESCRIPTION_DASH.test(t)) described = true;
const w = plainWord(t);
const file = isFileWord(w);
if (!file) prose = true;
if (!file && !LIST_JOINER.test(t)) prose = true;
if (described || !file) continue;
if ((w.includes('/') && !(tickedEntry && prose)) || i === 0 || LIST_JOINER.test(tokens[i - 1])) out.push(w);
if (t.endsWith(':')) described = true;