This is a complete redesign of seekr.
seekr is now a much more ambitious package built around a different model of
search-and-replace. Instead of providing a small set of helpers for finding text
in files, it now introduces a full workflow for listing files, filtering files,
finding matches, inspecting and refining results, staging replacements, modifying
selected files, creating backups, and restoring them.
This release introduces the seekr_match vector, implemented as a vctrs
record-style (rcrd) vector. Each element represents one independent match in
one file, while fields store the file path, match location, matched text, planned
replacement, surrounding context, and related metadata.
This release is intentionally not backward compatible with seekr 0.1.3. The
scope of the package has expanded substantially, and keeping the previous API
would have required maintaining two separate paradigms side by side. The previous
API has therefore been removed, and existing code using earlier versions of
seekr will need to be rewritten with the new workflow-oriented API.
normalizePath() behaves on macOS.
The test now avoids relying on full file paths and instead checks file names,
ensuring compatibility across platforms..R, .csv, .log, .yaml, .json) to
inst/extdata/ to demonstrate the package's usage. These files are used in
examples and allow seek() and seek_in() to run without requiring external data.