From b1fed4ca569c99d5b4fd7e5cfff4c8c63d9cad17 Mon Sep 17 00:00:00 2001 From: Lee Thompson Date: Fri, 3 Jan 2025 11:18:48 +0100 Subject: gnu: Add emacs-parinfer-rust-mode. * gnu/packages/emacs-xyz.scm (emacs-parinfer-rust-mode): New variable. Signed-off-by: Nicolas Goaziou Change-Id: I3db27c99bfb5286d5ca8d8bc5e7041eec070f02f --- gnu/packages/emacs-xyz.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'gnu/packages/emacs-xyz.scm') 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") -- cgit v1.2.3