unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* Opinions on packaging parinfer-rust-mode
@ 2024-07-14 12:21 Lee Thompson
  2024-07-14 14:37 ` Nils Landt
  0 siblings, 1 reply; 2+ messages in thread
From: Lee Thompson @ 2024-07-14 12:21 UTC (permalink / raw)
  To: help-guix

Greetings all,

I want to port https://github.com/justinbarclay/parinfer-rust-mode to
Guix.  This package is a more modern and actively maintained version of
`parinfer-mode`, which is already in Guix, that loads a Rust-based
library to handle all the heavy computation.

I've got a couple of patches for this package which I'll attach, one for
parinfer-rust-mode itself and another for an ELPA package called
track-changes, which parinfer-rust-mode depends on and (as far as I can
see) isn't already in Guix.

What I'm unsure about is this: parinfer-rust-mode is designed to offer
you the option of automatically downloading the companion Rust library
from the repo at https://github.com/justinbarclay/parinfer-rust-emacs.
This worked fine for testing and resulted in a working
parinfer-rust-mode for Emacs, though I'm suspecting having Guix handle
the downloading and manipulation of this library would be more
preferable (Guix-ier perhaps?).

I'm hoping others have ideas and opinions about what to do here.  Any
help appreciated, and if this is the wrong place for this do let me know
where better to inquire, thanks!

From 0f008e6c4bed9285f838ce7fd5d16c1fe2abf279 Mon Sep 17 00:00:00 2001
Message-ID: <0f008e6c4bed9285f838ce7fd5d16c1fe2abf279.1720884197.git.lee.p.thomp@gmail.com>
From: Lee Thompson <lee.p.thomp@gmail.com>
Date: Sat, 13 Jul 2024 16:21:07 +0100
Subject: [PATCH] First go at adding `parinfer-rust-mode` for Emacs.

Change-Id: Iebb2105206884c9164556f7c40397dd484fdf317
---
 gnu/packages/emacs-xyz.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index c8b19bf1a5..8be31db415 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -26658,6 +26658,29 @@ (define-public emacs-track-changes
 to react to them.")
     (license license:gpl3+)))
 
+(define-public emacs-parinfer-rust-mode
+  (package
+    (name "emacs-parinfer-rust-mode")
+    (version "0.9.1")
+    (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 "1kbn54v100rh6pxl3lc66pspd3nfy7pkv8iyqkg09xqcwyblbf86"))))
+    (propagated-inputs (list emacs-track-changes))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/justinbarclay/parinfer-rust-mode/")
+    (synopsis "Lisp structure editing mode leveraging parinfer-rust.")
+    (description
+     "@code{parinfer-rust-mode} aims to be a simple implementation
+of Parinfer that leverages the parinfer-rust plugin to do most of the heavy
+lifting.")
+    (license license:gpl3)))
+
 (define-public emacs-helm-eww
   (package
     (name "emacs-helm-eww")

base-commit: 3e7ce72d80878d5b3eb161c37ca97fd6ded33b2f
prerequisite-patch-id: 0a832f8727798349281d9c107a3b850f4a910f1c
-- 
2.45.2

From 47ca20da9ee09892171ea121f68248a9af6a37b8 Mon Sep 17 00:00:00 2001
Message-ID: <47ca20da9ee09892171ea121f68248a9af6a37b8.1720884142.git.lee.p.thomp@gmail.com>
From: Lee Thompson <lee.p.thomp@gmail.com>
Date: Sat, 13 Jul 2024 16:20:32 +0100
Subject: [PATCH] First go at adding `track-changes` for Emacs.

Change-Id: Ife61e1dd390d54b21d28be13102977ee1a97b585
---
 gnu/packages/emacs-xyz.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 99e1d4c65c..c8b19bf1a5 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -26637,6 +26637,27 @@ (define-public emacs-parinfer-mode
 keep Parens and Indentation inline with one another.")
     (license license:gpl3+)))
 
+(define-public emacs-track-changes
+  (package
+    (name "emacs-track-changes")
+    (version "1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/track-changes-"
+                           version ".tar"))
+       (sha256
+        (base32 "0al6a1xjs6p2pn6z976pnmfqz2x5xcz99b5gkdzz90ywbn7018m4"))))
+    (build-system emacs-build-system)
+    (home-page "https://elpa.gnu.org/packages/track-changes.html")
+    (synopsis "An abstraction library which handles accumulating file changes")
+    (description
+     "This library is a layer of abstraction above
+@code{before-change-functions} and @code{after-change-functions} which takes
+care of accumulating changes until a time when its client finds it convenient
+to react to them.")
+    (license license:gpl3+)))
+
 (define-public emacs-helm-eww
   (package
     (name "emacs-helm-eww")

base-commit: 3e7ce72d80878d5b3eb161c37ca97fd6ded33b2f
-- 
2.45.2



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: Opinions on packaging parinfer-rust-mode
  2024-07-14 12:21 Opinions on packaging parinfer-rust-mode Lee Thompson
@ 2024-07-14 14:37 ` Nils Landt
  0 siblings, 0 replies; 2+ messages in thread
From: Nils Landt @ 2024-07-14 14:37 UTC (permalink / raw)
  To: Lee Thompson, help-guix

> Lee Thompson <lee.p.thomp@gmail.com> hat am 14.07.2024 14:21 CEST geschrieben:
>
> What I'm unsure about is this: parinfer-rust-mode is designed to offer
> you the option of automatically downloading the companion Rust library
> from the repo at https://github.com/justinbarclay/parinfer-rust-emacs.
> This worked fine for testing and resulted in a working
> parinfer-rust-mode for Emacs, though I'm suspecting having Guix handle
> the downloading and manipulation of this library would be more
> preferable (Guix-ier perhaps?).

I'd definitely suggest packaging parinfer-rust-emacs and adding it as an input.
This might be very easy - judging by the readme, parinfer-rust-emacs is a fork of https://github.com/eraserhd/parinfer-rust, which is packaged in guix (gnu packages text-editors).
Copying that package definition seems like it's worth a try, but I haven't checked what changed in the fork.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-07-14 14:38 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-14 12:21 Opinions on packaging parinfer-rust-mode Lee Thompson
2024-07-14 14:37 ` Nils Landt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).