summaryrefslogtreecommitdiff
path: root/.agents
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-28 18:58:24 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:15 -0300
commitff867666106fa85bd91341beb9e8121b2f99bc5f (patch)
treea4a84b3f6f733673149fd2541cc9f70e61629fac /.agents
parentab806dc38ddcd74958b999fe708ae9ea63609f72 (diff)
downloadpardes-ff867666106fa85bd91341beb9e8121b2f99bc5f.tar.gz
pardes-ff867666106fa85bd91341beb9e8121b2f99bc5f.zip
^ in a pattern with \n matches at every line start, and a ^ or $ that cannot work is refused
A pattern naming a newline runs over the whole text, where mvzr's ^ is only the text's start: /^def .*\n/ from #0 failed, and Edit ,x/^def .*\n/.../ silently did nothing. A leading ^ is now tried at each line start from the search's own; $ just before \n is dropped, as it changes nothing; any other ^ or $ in such a pattern is refused with why, since mvzr would read it as the text's ends. ^ inside an alternation holds only where a search starts, an mvzr limit, documented. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to '.agents')
-rw-r--r--.agents/skills/pardes-9p/SKILL.md5
1 files changed, 4 insertions, 1 deletions
diff --git a/.agents/skills/pardes-9p/SKILL.md b/.agents/skills/pardes-9p/SKILL.md
index 757ce64a..57ebd6cf 100644
--- a/.agents/skills/pardes-9p/SKILL.md
+++ b/.agents/skills/pardes-9p/SKILL.md
@@ -182,7 +182,10 @@ is why copying one onto another is all that acme's `addr=dot`, `dot=addr` and
`12:5,14:1`), whose regexps are mvzr's searched as sam searches:
`^`/`$` match at any line's start and end, `.` and `[^...]` never match a
newline, the leftmost match wins (the first alternative there, not the
-longest). An expression is evaluated from the current address (the last one
+longest). In a pattern with `\n`, `^` works only first (`^def .*\n` finds
+every def line) and `$` only just before a `\n`; anywhere else the pattern is
+refused, not silently unmatched. `^` inside an alternation (`^def|^ `) holds
+only where the search starts: fine in `x` over lines or `g`, not mid-line. An expression is evaluated from the current address (the last one
written, or just past the last `data` write): `.` is that address, not the
selection, `/re/` searches on from its end and wraps unless `limit` is set,
`?re?` or `-/re/` searches back, `#100,#50` fails `addresses out of order`,