summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorArnaud Lechevallier <arnaud.lechevallier@free.fr>2023-05-25 15:01:33 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2023-05-25 22:19:39 +0200
commit085bf9cd21507ced107c2c580bd5f95832be7063 (patch)
tree23e60a0991e2574582ce6ff93f1115ef05532519 /gnu/packages
parent0e570b17269f2c60908a09f05603d11f66d6cecd (diff)
downloadguix-085bf9cd21507ced107c2c580bd5f95832be7063.tar.gz
gnu: Add emacs-substitute.
* gnu/packages/emacs-xyz.scm (emacs-substitute): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/emacs-xyz.scm29
1 files changed, 29 insertions, 0 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 0fece02697..7575049ea3 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -130,6 +130,7 @@
 ;;; Copyright © 2023 Gabriel Wicki <gabriel@erlikon.ch>
 ;;; Copyright © 2022-2023 Simon Josefsson <simon@josefsson.org>
 ;;; Copyright © 2023 Fabio Natali <me@fabionatali.com>
+;;; Copyright © 2023 Arnaud Lechevallier <arnaud.lechevallier@free.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -9062,6 +9063,34 @@ one Emacs buffer.")
 comparing characters, removing cursors, and more.")
       (license license:bsd-2))))
 
+(define-public emacs-substitute
+  (let ((commit "b81bb7789847f3d1645a60422fa080c48b93dd47")) ;version bump
+    (package
+      (name "emacs-substitute")
+      (version "0.1.8")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.sr.ht/~protesilaos/substitute")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0s1lgpwmdjz17rd4r6qp41agmpqwa9976v1pb55p648zjh0p2vlz"))))
+      (build-system emacs-build-system)
+      (home-page "https://git.sr.ht/~protesilaos/substitute")
+      (synopsis "Efficiently replace targets in the buffer or context")
+      (description
+       "Substitute is a set of commands that perform text replacement (i)
+throughout the buffer, (ii) limited to the current definition (per
+narrow-to-defun), (iii) from point to the end of the buffer, and (iv) from
+point to the beginning of the buffer.
+
+These substitutions are meant to be as quick as possible and, as such, differ
+from the standard @code{query-replace} tool.  The provided commands prompt for
+substitute text and perform the substitution outright.")
+      (license license:gpl3+))))
+
 (define-public emacs-typo
   (package
     (name "emacs-typo")