Regex replace prompt: say that Enter searches skipped long lines

The note added for search-as-you-type told the regex replace prompt to
use Left/Right, which only step through matches in the search prompts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015rcVQiiWyTzoNrsvLSaAfB
This commit is contained in:
Claude
2026-09-24 09:16:04 -07:00
committed by Kyle Isom
parent 853416f65a
commit 8cb688c574
2 changed files with 14 additions and 2 deletions
+8 -2
View File
@@ -2450,7 +2450,10 @@ cmd_insert_text(CommandContext &ctx)
search_apply_match_regex(ctx.editor, *buf, rmatches);
if (skipped > 0 && err.empty())
ctx.editor.SetStatus(ctx.editor.Status() + " [" + std::to_string(skipped) +
" long line(s) skipped; Left/Right search all]");
" long line(s) skipped; " +
(ctx.editor.CurrentPromptKind() == Editor::PromptKind::RegexSearch
? "Left/Right search all]"
: "Enter searches all]"));
} else {
auto matches = search_compute_matches(*buf, ctx.editor.SearchQuery());
// Keep index stable unless out of range
@@ -3614,7 +3617,10 @@ cmd_backspace(CommandContext &ctx)
search_apply_match_regex(ctx.editor, *buf2, rm);
if (skipped > 0 && err.empty())
ctx.editor.SetStatus(ctx.editor.Status() + " [" + std::to_string(skipped) +
" long line(s) skipped; Left/Right search all]");
" long line(s) skipped; " +
(ctx.editor.CurrentPromptKind() == Editor::PromptKind::RegexSearch
? "Left/Right search all]"
: "Enter searches all]"));
} else {
auto matches = search_compute_matches(*buf2, ctx.editor.SearchQuery());
search_apply_match(ctx.editor, *buf2, matches);
+6
View File
@@ -1291,6 +1291,12 @@ TEST(Audit_RegexSearch_LongLineFoundByNext)
ASSERT_TRUE(h.Exec(CommandId::MoveRight));
ASSERT_EQ(h.Buf().Cury(), (std::size_t) 1);
ASSERT_EQ(h.Buf().Curx(), (std::size_t) 25000);
ASSERT_TRUE(h.Exec(CommandId::Refresh));
ASSERT_TRUE(!ed.PromptActive());
// The replace prompt has no next/previous; its Enter searches all lines.
ASSERT_TRUE(h.Exec(CommandId::RegexpReplace));
ASSERT_TRUE(h.Exec(CommandId::InsertText, "NEE+DLE"));
ASSERT_TRUE(ed.Status().find("Enter searches all") != std::string::npos);
}