unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
From: Lee Thompson <lee.p.thomp@gmail.com>
To: help-guix@gnu.org
Subject: Opinions on packaging parinfer-rust-mode
Date: Sun, 14 Jul 2024 13:21:22 +0100	[thread overview]
Message-ID: <875xt84119.fsf@gmail.com> (raw)

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



             reply	other threads:[~2024-07-14 13:20 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-14 12:21 Lee Thompson [this message]
2024-07-14 14:37 ` Opinions on packaging parinfer-rust-mode Nils Landt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=875xt84119.fsf@gmail.com \
    --to=lee.p.thomp@gmail.com \
    --cc=help-guix@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).