[bug#56195] : Add sbcl-nkeymaps
Commit Message
Hi Guix,
Please find the patch attached. Thanks.
Comments
Please do not merge, this patch is a tag that's on the wrong commit.
Pierre Neidhardt <pierre@atlas.engineer> writes:
> Please do not merge, this patch is a tag that's on the wrong commit.
Ok to merge now. I was expecting that the hash would change but it
didn't apparently.
It should, but your Guix store might be using the old repo, which is why
you do not see the change.
Try with a different file-name, and you'll get the new hash.
From 1f0680c2ec15ccebf286054730469b2121d57f4b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20A=2E=20Gomes?= <andremegafone@gmail.com>
Date: Fri, 24 Jun 2022 16:19:26 +0100
Subject: [PATCH] gnu: Add sbcl-nkeymaps.
* gnu/packages/lisp-xyz.scm (sbcl-nkeymaps): New variable.
---
gnu/packages/lisp-xyz.scm | 73 +++++++++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
@@ -21467,3 +21467,76 @@ (define-public cl-clog
(define-public ecl-clog
(sbcl-package->ecl-package sbcl-clog))
+
+(define-public sbcl-nkeymaps
+ (package
+ (name "sbcl-nkeymaps")
+ (version "0.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/atlas-engineer/nkeymaps")
+ (commit version)))
+ (file-name (git-file-name "nkeymaps" version))
+ (sha256
+ (base32
+ "0jiw9k4041mqdjl06q1haf5bsnz8f2xk9ajkismv0yjx8cdqsi7r"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-cl-str
+ sbcl-fset
+ sbcl-trivial-package-local-nicknames))
+ (native-inputs
+ (list sbcl-prove))
+ (home-page "https://github.com/atlas-engineer/nkeymaps")
+ (synopsis "Keymap facility for Common Lisp")
+ (description "Inspired by Emacsy (keymap.scm) which is inspired by Emacs.
+@itemize
+
+@item Support prefix keys to other keymaps. For instance, if you prefix
+my-mode-map with C-c, then all bindings for my-mode will be accessible after
+pressing C-c.
+
+@item List all bindings matching a given prefix. (Also known as which-key in
+Emacs.)
+
+@item List the bindings associated to a command.
+
+@item Support multiple inheritance.
+
+@item Support keycode.
+
+@item Validate keyspec at compile time.
+
+@item define-key can set multiple bindings in a single call.
+
+@item Support multiple scheme to make it easy to switch between, say,
+Emacs-style and VI-style bindings. This orthogonality to keymaps composes
+better than having multiple keymaps: changing scheme applies to the entire
+program, which is easier than looping through all keymaps to change them.
+
+@item Translate keyspecs as a fallback. For instance if shift-a is not bound,
+check A.
+
+@item Behaviour can be customized with global parameters such as
+*print-shortcut*.
+
+@item The compose function can merge multiple keymaps together.
+
+@item Support multiple arguments when that makes sense (e.g. multiple keymaps
+for lookup-key).
+
+@item Key remapping à-la Emacs.
+
+@item Typed keymaps, i.e. keymaps where bound values can only be of a given
+type. This is convenient to catch typos, for instance when binding 'FOO
+instead of #'FOO.")
+ (license license:expat)))
+
+(define-public cl-nkeymaps
+ (sbcl-package->cl-source-package sbcl-nkeymaps))
+
+(define-public ecl-nkeymaps
+ (sbcl-package->ecl-package sbcl-nkeymaps))
--
2.36.1