summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorLee Thompson <lee.p.thomp@gmail.com>2024-11-04 16:59:33 +0000
committerEfraim Flashner <efraim@flashner.co.il>2024-11-17 10:49:59 +0200
commitdb4ef36acc4aa03094bfce7b491613b64f3e4fa5 (patch)
tree8a962341853485706d890dc2482c7ceed44ac59a /gnu/packages
parentb9547aa9bf65ea080cbf65af10bcaf125113d561 (diff)
downloadguix-db4ef36acc4aa03094bfce7b491613b64f3e4fa5.tar.gz
gnu: Add parinfer-rust-emacs.
* gnu/packages/text-editors.scm (parinfer-rust-emacs): New variable.

Change-Id: I6c6fb384edb03b55bae63137576c364cf11e42a5
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/text-editors.scm45
1 files changed, 45 insertions, 0 deletions
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index fae021f012..db5db19bff 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -75,6 +75,8 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages crates-web)
+  #:use-module (gnu packages crates-windows)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages datastructures)
@@ -467,6 +469,49 @@ parentheses and indentation.  This library can be called from other editors that
 can load dynamic libraries.")
     (license license:expat)))
 
+(define-public parinfer-rust-emacs
+  (package
+    (name "parinfer-rust-emacs")
+    (version "0.4.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/justinbarclay/parinfer-rust-emacs")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1v5lcbs1x4f3b428sj9rkjbmfpzyxzny7i0pgdpnr8nyjvpkzns8"))
+       (file-name (git-file-name name version))))
+    (build-system cargo-build-system)
+    (arguments
+     (list
+      #:install-source? #f
+      #:cargo-inputs `(("rust-getopts" ,rust-getopts-0.2)
+                       ("rust-libc" ,rust-libc-0.2)
+                       ("rust-emacs" ,rust-emacs-0.19)
+                       ("rust-serde" ,rust-serde-1)
+                       ("rust-serde-json" ,rust-serde-json-1)
+                       ("rust-serde-derive" ,rust-serde-derive-1)
+                       ("rust-stdweb" ,rust-stdweb-0.4)
+                       ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+                       ("rust-unicode-width" ,rust-unicode-width-0.1)
+                       ("rust-winapi" ,rust-winapi-0.3))
+      #:phases #~(modify-phases %standard-phases
+                   (add-after 'install 'install-library
+                     (lambda _
+                       (let ((lib (string-append #$output "/lib")))
+                         (with-directory-excursion "target/release"
+                           (install-file "libparinfer_rust.so" lib))))))))
+    (inputs (list clang))
+    (home-page "https://github.com/justinbarclay/parinfer-rust-emacs")
+    (synopsis "Emacs-centric fork of parinfer-rust")
+    (description
+     "@command{parinfer-rust-emacs} is an Emacs-centric fork of parinfer-rust,
+itself an implementation of Shaun Lebron’s Parinfer.  This builds a shared
+library intended to be loaded by the @command{emacs-parinfer-rust-mode} Emacs
+plugin, though a standalone binary is built also.")
+    (license license:isc)))
+
 (define-public joe
   (package
     (name "joe")