summaryrefslogtreecommitdiff
path: root/gnu/packages/emacs-xyz.scm
diff options
context:
space:
mode:
authorLee Thompson <lee.p.thomp@gmail.com>2025-01-03 11:18:48 +0100
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2025-01-03 11:59:35 +0100
commitb1fed4ca569c99d5b4fd7e5cfff4c8c63d9cad17 (patch)
treefb4dcbf651e4699ee99ee01facbf2f0db8573ba4 /gnu/packages/emacs-xyz.scm
parent37ca28fa4e1f1ac0ab11ad616cb64585e885ac9b (diff)
gnu: Add emacs-parinfer-rust-mode.
* gnu/packages/emacs-xyz.scm (emacs-parinfer-rust-mode): New variable. Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr> Change-Id: I3db27c99bfb5286d5ca8d8bc5e7041eec070f02f
Diffstat (limited to 'gnu/packages/emacs-xyz.scm')
-rw-r--r--gnu/packages/emacs-xyz.scm43
1 files changed, 43 insertions, 0 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 368df468974..e9e230c9fd1 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -290,6 +290,7 @@
#:use-module (gnu packages statistics)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages texinfo)
+ #:use-module (gnu packages text-editors)
#:use-module (gnu packages virtualization)
#:use-module (gnu packages web-browsers)
#:use-module (gnu packages wget)
@@ -27760,6 +27761,48 @@ mode for Lisp programming languages. It will infer some changes to
keep Parens and Indentation inline with one another.")
(license license:gpl3+)))
+(define-public emacs-parinfer-rust-mode
+ (package
+ (name "emacs-parinfer-rust-mode")
+ (version "0.9.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/justinbarclay/parinfer-rust-mode")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1p00m757maw6dxig0x45gry1l7vm9dm6wg1anfm2rwl6hw1f5q25"))))
+ (build-system emacs-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'configure
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((parinfer-lib
+ (dirname
+ (search-input-file inputs "lib/libparinfer_rust.so"))))
+ ;; Specify the absolute file names of the parinfer shared
+ ;; library.
+ ;; (make-file-writable "parinfer-rust-mode.el")
+ (emacs-substitute-variables "parinfer-rust-mode.el"
+ ("parinfer-rust--lib-name" "libparinfer_rust.so")
+ ("parinfer-rust-library-dir" parinfer-lib))
+ (emacs-substitute-sexps "parinfer-rust-mode.el"
+ ("defcustom parinfer-rust-library-directory" parinfer-lib)
+ ("defconst parinfer-rust--lib-name"
+ "libparinfer_rust.so"))))))))
+ (inputs (list parinfer-rust-emacs))
+ (propagated-inputs (list emacs-track-changes))
+ (home-page "https://github.com/justinbarclay/parinfer-rust-mode")
+ (synopsis "Lisp structure editing mode leveraging Parinfer Rust")
+ (description
+ "Parinfer Rust mode aims to be a simple implementation of Parinfer that
+leverages the Parinfer Rust Emacs library to do most of the heavy lifting.")
+ (license license:gpl3+)))
+
(define-public emacs-helm-eww
(package
(name "emacs-helm-eww")