aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLee Thompson <lee.p.thomp@gmail.com>2025-04-09 16:32:53 +0200
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2025-04-13 18:18:15 +0200
commit5c7b3070925905208848df7679f3b5d636132cba (patch)
tree838af8157610360759bac2a584c01adc95392259
parentcda5cccfec9375fa0958bb0d9a73fde3cefbc9e5 (diff)
downloadguix-5c7b3070925905208848df7679f3b5d636132cba.tar.gz
guix-5c7b3070925905208848df7679f3b5d636132cba.zip
gnu: Add emacs-bqn-mode.
* gnu/packages/emacs-xyz.scm (emacs-bqn-mode): New variable. Change-Id: Ibe9a32c4f8414dbc5d3bb350aa684a8f3e15c567 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
-rw-r--r--gnu/packages/emacs-xyz.scm45
1 files changed, 45 insertions, 0 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 258046ad38..e8eb36bb78 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -489,6 +489,51 @@ There are many more ways to organize and display your bookmarks. I recommend
reading the extensive documentation about BookmarkPlus on the Emacs Wiki.")
(license license:gpl3+)))
+(define-public emacs-bqn-mode
+ (package
+ (name "emacs-bqn-mode")
+ ;; upstream releases are tagged by date
+ (version "2024-09-10")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/museoa/bqn-mode/")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0a4whlx8065c15nfyqy8176mwysnc13z4q7mmdfnf6skdnvi2pk6"))))
+ (build-system emacs-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests found in source
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; `bqn-comint-bring' in `bqn-mode.el' uses the macro
+ ;; `thread-last', defined in `subr-x.el' but not autoloaded.
+ ;; `emacs-build-system' will happily byte-compile `bqn-mode.el'
+ ;; but interactively calling `bqn-comint-bring' will cause an
+ ;; error. An explicit call to `(require 'subr-x)' remedies the
+ ;; issue until it is fixed upstream.
+ (add-after 'unpack 'require-subr-x
+ (lambda _
+ (emacs-batch-edit-file "bqn-mode.el"
+ '(progn (goto-char (point-min))
+ (re-search-forward
+ "(require 'pulse)")
+ (forward-line)
+ (insert "(require 'subr-x)\n")
+ (basic-save-buffer))))))))
+ (propagated-inputs (list emacs-compat))
+ (synopsis "Emacs major mode for the BQN programming language")
+ (description
+ "This package provides a major mode for editing and executing BQN code.
+It can be used to interactively evaluate BQN code in buffer or can be used to
+launch BQN REPL sessions. For evaluating BQN code or spawning interpreters an
+executable implementation is required such as @code{cbqn} or @code{dbqn}.")
+ (home-page "https://github.com/museoa/bqn-mode/")
+ (license license:gpl3)))
+
(define-public emacs-cfrs
(package
(name "emacs-cfrs")