summary refs log tree commit diff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2019-03-06 14:40:02 +0100
committerRicardo Wurmus <rekado@elephly.net>2019-03-06 14:40:02 +0100
commit5531782d1c140cf551db891f8a23eab3dc434079 (patch)
tree310ffe042bc718a5aadddf002c4250c34b929397
parent4fc9b5b1dd6024a3e4962626ee6c7196bc298ebf (diff)
downloadguix-5531782d1c140cf551db891f8a23eab3dc434079.tar.gz
gnu: Add guile-studio.
* gnu/packages/guile-xyz.scm (guile-studio): New variable.
-rw-r--r--gnu/packages/guile-xyz.scm57
1 files changed, 57 insertions, 0 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 8febe605a7..856f02f793 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -49,9 +49,11 @@
   #:use-module (gnu packages disk)
   #:use-module (gnu packages ed)
   #:use-module (gnu packages emacs)
+  #:use-module (gnu packages emacs-xyz)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages hurd)
@@ -2000,3 +2002,58 @@ format is also supported.")
        "This package provides a simple SVG-based picture language for Guile.
 The picture values can directly be displayed in Geiser.")
       (license license:lgpl3+))))
+
+(define-public guile-studio
+  (let ((commit "e2da64f014942a73996286c4abe3c3b1f8bd220c")
+        (revision "1"))
+    (package
+      (name "guile-studio")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.elephly.net/software/guile-studio.git")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "10v3kw41bzd8c2a6vxgrwbvl216d0k8f5s9h6pm8hahpd03jl7lm"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f                      ; there are none
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (replace 'build
+             (lambda* (#:key source inputs outputs #:allow-other-keys)
+               (let* ((out   (assoc-ref outputs "out"))
+                      (bin   (string-append out "/bin/"))
+                      (share (string-append out "/share/")))
+                 (mkdir-p share)
+                 (mkdir-p bin)
+                 (apply invoke "guile" "-s" "guile-studio-configure.scm"
+                        out
+                        (assoc-ref inputs "emacs")
+                        (assoc-ref inputs "guile-picture-language")
+                        (string-append (assoc-ref inputs "adwaita-icon-theme")
+                                       "/share/icons/Adwaita/")
+                        (map cdr inputs))
+                 #t)))
+           (delete 'install))))
+      (inputs
+       `(("guile" ,guile-2.2)
+         ("guile-picture-language" ,guile-picture-language)
+         ("emacs" ,emacs)
+         ("emacs-geiser" ,emacs-geiser)
+         ("emacs-company" ,emacs-company)
+         ("emacs-flycheck" ,emacs-flycheck)
+         ("emacs-smart-mode-line" ,emacs-smart-mode-line)
+         ("emacs-paren-face" ,emacs-paren-face)
+         ("adwaita-icon-theme" ,adwaita-icon-theme)))
+      (home-page "https://gnu.org/software/guile")
+      (synopsis "IDE for Guile")
+      (description
+       "This is Emacs with a few settings that make working with Guile easier
+for people new to Emacs.  Features include: CUA mode, Geiser, tool bar icons
+to evaluate Guile buffers, support for Guile's very own picture language, code
+completion, a simple mode line, etc.")
+      (license license:gpl3+))))