Subject: [bug#49273] [PATCH 1/1] gnu: Add emacs-rustic.

From: Dhruvin Gandhi <[email-masked]>
Date: Tue, 29 Jun 2021 18:59:35 +0530

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

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index ab04992fad..6d8bafceae 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -99,6 +99,7 @@
 ;;; Copyright © 2021 Eugene Klimov <[email-masked]>
 ;;; Copyright © 2021 Zheng Junjie <[email-masked]>
 ;;; Copyright © 2021 David Dashyan <[email-masked]>
+;;; Copyright © 2021 Dhruvin Gandhi <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21039,6 +21040,62 @@ source code.")
     (license (list license:expat
                    license:asl2.0))))
 
+(define-public emacs-rustic
+  (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")
+               #t)))))
+      (home-page "https://github.com/brotzeit/rustic")
+      (synopsis "Rust development environment for Emacs")
+      (description "Rustic is a fork of rust-mode.
+
+Differences with rust-mode:
+@itemize
+@item flycheck integration
+@item cargo popup
+@item multiline error parsing
+@item translation of ANSI control sequences through xterm-color
+@item async org babel
+@item custom compilation process
+@item 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\n")
+      (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"))
-- 
2.32.0