Subject: [bug#40300] [PATCH] gnu: Add emacs-haskell-snippets.

From: John Soo <[email-masked]>
Date: Mon, 30 Mar 2020 12:03:23 -0700

Nicolas Goaziou <[email-masked]> writes:

> Hello,
>
> John Soo <[email-masked]> writes:
>
>> +(define-public emacs-haskell-snippets
>> +  (package
>> +    (name "emacs-haskell-snippets")
>> +    (version "0.1.0")
>
> Would it make sense to package HEAD instead. I'm looking in particular
> at upstream's commit 9e41a53f8388f2a2cf2a1bb3163bc6de764099d5.

I think so. Done.

>> +    (source
>> +     (origin
>> +       (method git-fetch)
>> +       (uri
>> +        (git-reference
>> +         (url "https://github.com/haskell/haskell-snippets")
>> +         (commit version)))
>> +       (file-name (git-file-name name version))
>> +       (sha256
>> +        (base32
>> +         "0b3d7rvqvvcsp51aqfhl0zg9zg8j0p6vlfvga6jp9xc7626vh6f6"))))
>
> Usual nitpick: please put string on the same line as `base32'.

Done.

>> +    (inputs
>> +     `(("emacs-yasnippet" ,emacs-yasnippet)))
>> +    (arguments
>> +     `(#:phases
>> +       (modify-phases %standard-phases
>> +         (add-after 'install 'install-snippets
>> +           (lambda* (#:key outputs #:allow-other-keys)
>> +             (let* ((out (assoc-ref outputs "out"))
>> +                    (snippets
>> +                     (string-append
>> +                      out "/share/emacs/site-lisp/snippets/haskell-mode")))
>> +               (mkdir-p snippets)
>> +               (copy-recursively "snippets/haskell-mode" snippets)
>> +               #t))))))
>> +    (build-system emacs-build-system)
>
> Nitpick: could you move parts in this order: build-system ->
> arguments -> inputs.

Yes I can. Done.

I also changed inputs -> propagated-inputs.

Thanks again,

John

>From 1984fc60cc5045c50ae9f913b13ebbc93101f731 Mon Sep 17 00:00:00 2001
From: John Soo <[email-masked]>
Date: Tue, 24 Mar 2020 07:21:35 -0700
Subject: [PATCH] gnu: Add emacs-haskell-snippets.

* gnu/packages/emacs-xyz.scm (emacs-haskell-snippets): New variable.
---
 gnu/packages/emacs-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index c029d1ed3d..1d46f540ad 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -21965,3 +21965,39 @@ enables modal editing and composition of commands, too.  It combines ideas of
 other Editors like Vim or Kakoune and tries to align them with regular Emacs
 conventions.")
     (license license:gpl3+)))
+
+(define-public emacs-haskell-snippets
+  (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
+    (package
+      (name "emacs-haskell-snippets")
+      (version (git-version "0.1.0" "0" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/haskell/haskell-snippets")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'install 'install-snippets
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (snippets
+                       (string-append
+                        out "/share/emacs/site-lisp/snippets/haskell-mode")))
+                 (mkdir-p snippets)
+                 (copy-recursively "snippets/haskell-mode" snippets)
+                 #t))))))
+      (propagated-inputs
+       `(("emacs-yasnippet" ,emacs-yasnippet)))
+      (home-page "https://github.com/haskell/haskell-snippets")
+      (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
+      (description "Haskell-Snippets is a collection of YASnippet Haskell
+snippets for Emacs.")
+      (license license:expat))))
-- 
2.26.0