summary refs log tree commit diff
path: root/gnu/packages/emacs-xyz.scm
diff options
context:
space:
mode:
authorDhruvin Gandhi via Guix-patches via <guix-patches@gnu.org>2021-06-29 18:59:35 +0530
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2021-07-02 09:13:28 +0200
commit050ec2390f3e1d55aab57f8f01b73fbb6e932683 (patch)
tree899ce7c9640ec7dbb11a26340338d36cda6ef12f /gnu/packages/emacs-xyz.scm
parent87232a8c2f07878a6bd31fe61a470a351722766b (diff)
downloadguix-050ec2390f3e1d55aab57f8f01b73fbb6e932683.tar.gz
gnu: Add emacs-rustic.
* gnu/packages/emacs-xyz.scm (emacs-rustic): New variable.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Diffstat (limited to 'gnu/packages/emacs-xyz.scm')
-rw-r--r--gnu/packages/emacs-xyz.scm57
1 files changed, 57 insertions, 0 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 5426c76c23..a38681ebcb 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -99,6 +99,7 @@
 ;;; Copyright © 2021 Eugene Klimov <lipklim@mailbox.org>
 ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2021 David Dashyan <mail@davie.li>
+;;; Copyright © 2021 Dhruvin Gandhi <contact@dhruvin.dev>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21039,6 +21040,62 @@ source code.")
     (license (list license:expat
                    license:asl2.0))))
 
+(define-public emacs-rustic
+  ;; XXX: Upstream does not tag releases.  Version is extracted from main
+  ;; file.
+  (let ((commit "bbf129cd128105de51b6c242b2551094b8d8987d")
+        (revision "0"))
+    (package
+      (name "emacs-rustic")
+      (version (git-version "1.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/brotzeit/rustic")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "09dnlvi8kf683n6q3yp4gy9d4idiyg4x6rcij8d90cvygh8i30wd"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)
+         ("emacs-f" ,emacs-f)
+         ("emacs-flycheck" ,emacs-flycheck)
+         ("emacs-lsp-mode" ,emacs-lsp-mode)
+         ("emacs-markdown-mode" ,emacs-markdown-mode)
+         ("emacs-project" ,emacs-project)
+         ("emacs-s" ,emacs-s)
+         ("emacs-spinner" ,emacs-spinner)
+         ("emacs-xterm-color" ,emacs-xterm-color)))
+      (arguments
+       ;; Tests require rust, cargo, rustfmt, and various crates to be
+       ;; vendored.
+       `(#:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'check 'set-without-cask
+             (lambda _
+               (setenv "WITHOUT_CASK" "1"))))))
+      (home-page "https://github.com/brotzeit/rustic")
+      (synopsis "Rust development environment for Emacs")
+      (description "Rustic is a fork of Rust mode.
+In addition to its predecessor, it offers the following features:
+@itemize
+@item Flycheck integration,
+@item Cargo popup,
+@item multiline error parsing,
+@item translation of ANSI control sequences through XTerm color,
+@item asynchronous Org Babel,
+@item custom compilation process,
+@item @command{rustfmt} errors in a Rust compilation mode,
+@item automatic LSP configuration with Eglot or LSP mode,
+@item optional Rust inline documentation,
+@item etc.
+@end itemize")
+      (license (list license:expat
+                     license:asl2.0)))))
+
 (define-public emacs-ztree
   ;; Upstream provides no tag, but the commit below matches latest release.
   (let ((commit "c9ad9136d52ca5a81475693864e255d29448f43f"))