aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/lisp-xyz.scm
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2023-04-27 17:49:30 +0200
committerPierre Neidhardt <mail@ambrevar.xyz>2023-04-27 17:50:38 +0200
commitd59b4764f3171b1430a6d3b954659b8aab730475 (patch)
tree2d7280891e9da4cd865ec409a07196139c1890b8 /gnu/packages/lisp-xyz.scm
parent297805b1f83aa58ba9fc775c203373338aafd5ac (diff)
downloadguix-d59b4764f3171b1430a6d3b954659b8aab730475.tar.gz
guix-d59b4764f3171b1430a6d3b954659b8aab730475.zip
gnu: Add cl-prompter.
* gnu/packages/lisp-xyz.scm (cl-prompter, ecl-prompter, sbcl-prompter): New variables.
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-rw-r--r--gnu/packages/lisp-xyz.scm64
1 files changed, 64 insertions, 0 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 045932dd5a..b9d0a0fddb 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -25710,6 +25710,70 @@ extra features like type inference.")
(define-public cl-nclasses
(sbcl-package->cl-source-package sbcl-nclasses))
+(define-public sbcl-prompter
+ (package
+ (name "sbcl-prompter")
+ (version "0.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/atlas-engineer/prompter")
+ (commit version)))
+ (file-name (git-file-name "prompter" version))
+ (sha256
+ (base32
+ "1489qg99n5bpl9b88pq3smnw5l9hrq08sbnabvavv3jcd4pzpsqf"))
+ (modules '((guix build utils)))
+ (snippet
+ `(begin
+ (delete-file-recursively "nasdf")
+ #t))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list
+ sbcl-alexandria
+ sbcl-calispel
+ sbcl-cl-containers
+ sbcl-cl-str
+ sbcl-closer-mop
+ sbcl-lparallel
+ sbcl-moptilities
+ sbcl-nclasses
+ sbcl-serapeum
+ sbcl-trivial-package-local-nicknames))
+ (native-inputs
+ (list sbcl-lisp-unit2
+ sbcl-nasdf))
+ (home-page "https://github.com/atlas-engineer/prompter")
+ (synopsis "Live-narrowing, fuzzy-matching, extensible prompt framework")
+ (description
+ "This prompter library is heavily inspired by Emacs' minibuffer and
+Helm (@url{https://emacs-helm.github.io/helm/}). It only deals with the
+backend side of things, it does not handle any display.
+
+Non-exhaustive list of features:
+
+@itemize
+@item Asynchronous suggestion computation.
+@item Multiple sources.
+@item Multiple return actions.
+@item Customizable matching and sorting.
+@item Multiple attributes to match and display (also known as 'multiple column
+display').
+@item Customizable initialization and cleanup functions.
+@item Notifications sent when suggestion list is updated.
+@item Per-source history.
+@item Resumable prompters.
+@item Marks actions (event-driven on marks change).
+@item Current suggestion actions (event-driven on current suggestion change).
+@item Automatically return the prompt when narrowed down to a single suggestion.
+@end itemize\n")
+ (license license:bsd-3)))
+
+(define-public cl-prompter
+ (sbcl-package->cl-source-package sbcl-prompter))
+
(define-public sbcl-cl-template
(let ((commit "46193a9a389bb950530e579eae7e6e5a18184832")
(revision "0"))