gnu: emacs-yasnippet-snippets: Resolve void function error.
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>
Thu, 3 Dec 2020 18:26:52 +0000 (13:26 -0500)
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>
Fri, 4 Dec 2020 03:33:52 +0000 (22:33 -0500)
Attempting to use the python-mode snippets shipped with this package would
result in a '(void-function yasnippet-snippets--fixed-indent)' error being
raised (failing the initialization of other packages such as Elpy).  The
following change fixes this by not only installing the snippets but also the
accompanying Elisp library that allows automatic discovery of the snippets.

* gnu/packages/emacs-xyz.scm (emacs-yasnippet-snippets)[build-system]: Switch
to emacs-build-system.
[arguments]: Remove the #:module and #:builder arguments.  Add the #:include
argument.
[description]: Adjust to reflect that it is no longer necessary to manually
add the snippets to the yas-snippet-dirs variable.

gnu/packages/emacs-xyz.scm

index 9bcd71b..5eb8f7c 100644 (file)
@@ -10867,27 +10867,17 @@ type an abbreviation and automatically expand it into function templates.")
        (file-name (git-file-name name version))
        (sha256
         (base32 "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"))))
-    (build-system trivial-build-system)
+    (build-system emacs-build-system)
     (arguments
-     `(#:modules ((guix build utils))
-       #:builder
-       (begin
-         (use-modules (guix build utils))
-         (let* ((source (assoc-ref %build-inputs "source"))
-                (out (assoc-ref %outputs "out"))
-                (snippet-dir
-                 (string-append out "/share/emacs/yasnippet-snippets/")))
-           (with-directory-excursion source
-             (mkdir-p snippet-dir)
-             (copy-recursively "snippets" snippet-dir)))
-         #t)))
+     `(#:include (cons* "^snippets\\/" %default-include)))
+    (propagated-inputs
+     `(("emacs-s" ,emacs-s)             ;for snippets/rjsx-mode/.yas-setup.el
+       ("emacs-yasnippet" ,emacs-yasnippet)))
     (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
     (synopsis "Collection of YASnippet snippets for many languages")
-    (description
-     "Provides Andrea Crotti's collection of YASnippet snippets.  After installation,
-the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
-To make YASnippet aware of these snippets, add the above directory to
-@code{yas-snippet-dirs}.")
+    (description "This package provides an extensive collection of YASnippet
+snippets.  When this package is installed, the extra snippets it provides are
+automatically made available to YASnippet.")
     (license license:gpl3+)))
 
 (define-public emacs-helm-c-yasnippet