gnu: Add emacs-visual-replace.

* gnu/packages/emacs-xyz.scm (emacs-visual-replace): New variable.

Change-Id: I7c579785ed6b0e2989d16fb0b100e9860e8f38b9
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This commit is contained in:
Suhail Singh 2024-10-29 23:14:18 -04:00 committed by Liliana Marie Prikler
parent 746ffecd86
commit f5f4978ec3
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87

View file

@ -16202,6 +16202,68 @@ wrapping lines at the window edge, which is the standard behaviour of
window edge.") window edge.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-visual-replace
(package
(name "emacs-visual-replace")
;; XXX: when updating version, please ensure substitution in install-info
;; phase is still accurate.
(version "1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/szermatt/visual-replace")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "085dg77wpa371i8lvsl9ckm09yfjvqwym6wrs8lxfvih5jd7mm1b"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #t
#:phases #~(modify-phases %standard-phases
(add-before 'check 'add-test-dir-to-emacs-load-path
(lambda _
(setenv "EMACSLOADPATH"
(string-append (getcwd) "/test:"
(getenv "EMACSLOADPATH")))))
(add-after 'install 'install-info
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(info-dir (string-append out "/share/info")))
(invoke "eldev" "build" "--force"
"visual-replace.texi")
(with-directory-excursion "docs/build/texinfo"
(substitute* "visual-replace.texi"
;; XXX: Undo damage caused by sphinx-build
(("visual-replace ([^,]+), Jan 01, 1970" _ ver)
(string-append "visual-replace " ver))
(("@copyright\\{\\} 2020-1970")
"@copyright{} 2020-2024"))
(invoke "make" "info")
(install-file "./visual-replace.info" info-dir)
(copy-recursively "./visual-replace-figures"
(string-append info-dir
"/visual-replace-figures")))))))
#:test-command #~(list "eldev" "--use-emacsloadpath" "-dtTC" "test")))
(native-inputs (list emacs-eldev python-sphinx texinfo))
(home-page "https://github.com/szermatt/visual-replace")
(synopsis
"Alternate interface for @code{replace-string} and @code{query-replace}")
(description
"@code{visual-replace} provides an alternate interface for search and
replacement commands that supports previews. The interface also allows one to
edit both the query-text and its replacement in the same minibuffer prompt.
The interface covers the following commands:
@enumerate
@item @code{replace-string}
@item @code{replace-regexp}
@item @code{query-replace}
@item @code{query-replace-regexp}
@end enumerate")
(license license:gpl3+)))
(define-public emacs-writeroom (define-public emacs-writeroom
(package (package
(name "emacs-writeroom") (name "emacs-writeroom")