summary refs log tree commit diff
path: root/gnu/packages/emacs.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/emacs.scm')
-rw-r--r--gnu/packages/emacs.scm48
1 files changed, 33 insertions, 15 deletions
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 863624fc0f..1daf8e4e68 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -133,22 +133,20 @@
                (("/bin/pwd")
                 "pwd"))))
          (add-after 'install 'install-site-start
-           ;; Copy guix-emacs.el from Guix and add it to site-start.el.  This
-           ;; way, Emacs packages provided by Guix and installed in
+           ;; Use 'guix-emacs' in "site-start.el".  This way, Emacs packages
+           ;; provided by Guix and installed in
            ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are
            ;; automatically found.
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((guix-src (assoc-ref inputs "guix-src"))
-                    (out      (assoc-ref outputs "out"))
-                    (lisp-dir (string-append out "/share/emacs/site-lisp"))
-                    (unpack   (assoc-ref %standard-phases 'unpack)))
-               (mkdir "guix")
-               (with-directory-excursion "guix"
-                 (apply unpack (list #:source guix-src))
-                 (install-file "emacs/guix-emacs.el" lisp-dir))
+             (let* ((out      (assoc-ref outputs "out"))
+                    (lisp-dir (string-append out "/share/emacs/site-lisp")))
+               (copy-file (assoc-ref inputs "guix-emacs.el")
+                          (string-append lisp-dir "/guix-emacs.el"))
                (with-output-to-file (string-append lisp-dir "/site-start.el")
                  (lambda ()
-                   (display "(require 'guix-emacs nil t)")))
+                   (display
+                    (string-append "(when (require 'guix-emacs nil t)\n"
+                                   "  (guix-emacs-autoload-packages))\n"))))
                #t))))))
     (inputs
      `(("gnutls" ,gnutls)
@@ -175,13 +173,13 @@
        ("libsm" ,libsm)
        ("alsa-lib" ,alsa-lib)
        ("dbus" ,dbus)
-       ("guix-src" ,(package-source guix))
 
        ;; multilingualization support
        ("libotf" ,libotf)
        ("m17n-lib" ,m17n-lib)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
+       ("pkg-config" ,pkg-config)
        ("texinfo" ,texinfo)))
 
     (native-search-paths
@@ -1326,7 +1324,7 @@ type, for example: packages, buffers, files, etc.")
 (define-public emacs-guix
   (package
     (name "emacs-guix")
-    (version "0.2.2")
+    (version "0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/alezost/guix.el"
@@ -1334,7 +1332,7 @@ type, for example: packages, buffers, files, etc.")
                                   "/emacs-guix-" version ".tar.gz"))
               (sha256
                (base32
-                "1i47yh24xvgmnc778765g3j9ip0xb2y85v6w83r4qmkigk9rl2ck"))))
+                "1327zp140c7acckk0ajl88cgwr0lk9j3mb67nsq2janxrkwmj6br"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -3834,3 +3832,23 @@ mode-line.")
     (description
      "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
     (license license:gpl3+)))
+
+(define-public emacs-yasnippet
+  (package
+    (name "emacs-yasnippet")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/joaotavora/yasnippet/"
+                                  "archive/" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "15di6mkkf09b7qddpsrm0qln02hji3sx8blya5jxssi9wxxx9iq5"))))
+    (build-system emacs-build-system)
+    (home-page "http://github.com/joaotavora/yasnippet")
+    (synopsis "Yet another snippet extension for Emacs")
+    (description
+     "YASnippet is a template system for Emacs.  It allows you to type an
+abbreviation and automatically expand it into function templates.")
+    (license license:gpl3+)))