efraim pushed a commit to branch rust-team
in repository guix.

commit 29a863877d6ae8f2147aec7ca475e5786fe62338
Author: Murilo <[email protected]>
AuthorDate: Fri Nov 29 11:36:24 2024 -0300

    gnu: Add helix.
    
    * gnu/packages/text-editors.scm (helix): New variable.
    
    Change-Id: Ib2d83d3985f09e19601b126749b9a7faa4926bb9
    Signed-off-by: Efraim Flashner <[email protected]>
---
 gnu/packages/text-editors.scm | 106 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 106 insertions(+)

diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 4d53c7a530..6c613f8374 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2023 Jaeme Sifat <[email protected]>
 ;;; Copyright © 2023 David Pflug <[email protected]>
 ;;; Copyright © 2024 Herman Rimm <[email protected]>
+;;; Copyright © 2024 Murilo <[email protected]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -75,6 +76,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages crates-vcs)
   #:use-module (gnu packages crates-web)
   #:use-module (gnu packages crates-windows)
   #:use-module (gnu packages crypto)
@@ -513,6 +515,110 @@ library intended to be loaded by the 
@command{emacs-parinfer-rust-mode} Emacs
 plugin, though a standalone binary is built also.")
     (license license:isc)))
 
+(define-public helix
+  (package
+    (name "helix")
+    (version "23.10")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/helix-editor/helix";)
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0gl5iplj9x58pgqvb296d70xgq8fslqk8chai2arn65bcbgaw014"))))
+    (build-system cargo-build-system)
+    (arguments
+     (list
+       #:install-source? #f
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'unpack 'disable-grammar-build
+             (lambda _
+               (setenv "HELIX_DISABLE_AUTO_GRAMMAR_BUILD" "1")))
+           (replace 'install
+             (lambda _
+               (let* ((bin (string-append #$output "/bin"))
+                      (hx (string-append bin "/hx"))
+                      (share (string-append #$output "/share/helix"))
+                      (runtime (string-append share "/runtime"))
+                      (applications (string-append share "/applications")))
+                 (install-file "target/release/hx" bin)
+                 (install-file "contrib/Helix.desktop" applications)
+                 (copy-recursively "runtime" runtime)
+                 (wrap-program hx
+                   `("HELIX_RUNTIME" prefix
+                     (,runtime)))))))
+       #:cargo-inputs
+       (list rust-ahash-0.8
+             rust-anyhow-1
+             rust-arc-swap-1
+             rust-bitflags-2
+             rust-cassowary-0.3
+             rust-cc-1
+             rust-chardetng-0.1
+             rust-chrono-0.4
+             rust-clipboard-win-4
+             rust-content-inspector-0.2
+             rust-crossterm-0.27
+             rust-dunce-1
+             rust-encoding-rs-0.8
+             rust-etcetera-0.8
+             rust-fern-0.6
+             rust-futures-executor-0.3
+             rust-futures-util-0.3
+             rust-gix-0.55
+             rust-globset-0.4
+             rust-grep-regex-0.1
+             rust-grep-searcher-0.1
+             rust-hashbrown-0.14
+             rust-ignore-0.4
+             rust-imara-diff-0.1
+             rust-libc-0.2
+             rust-libloading-0.8
+             rust-log-0.4
+             rust-lsp-types-0.94
+             rust-nucleo-0.2
+             rust-once-cell-1
+             rust-parking-lot-0.12
+             rust-pulldown-cmark-0.9
+             rust-regex-1
+             rust-ropey-1
+             rust-rustix-0.38
+             rust-serde-1
+             rust-serde-json-1
+             rust-signal-hook-0.3
+             rust-signal-hook-tokio-0.3
+             rust-slotmap-1
+             rust-smallvec-1
+             rust-smartstring-1
+             rust-tempfile-3
+             rust-termini-1
+             rust-textwrap-0.16
+             rust-thiserror-1
+             rust-threadpool-1
+             rust-tokio-1
+             rust-tokio-stream-0.1
+             rust-toml-0.7
+             rust-tree-sitter-0.20
+             rust-unicode-general-category-0.6
+             rust-unicode-segmentation-1
+             rust-unicode-width-0.1
+             rust-url-2
+             rust-which-4)
+       #:cargo-development-inputs
+       (list rust-fern-0.6
+             rust-indoc-2
+             rust-quickcheck-1
+             rust-smallvec-1
+             rust-tempfile-3)))
+    (inputs (list bash-minimal))
+    (home-page "https://helix-editor.com/";)
+    (synopsis "Post-modern modal text editor")
+    (description "A Kakoune / Neovim inspired editor, written in Rust.")
+    (license (list license:mpl2.0))))
+
 (define-public joe
   (package
     (name "joe")

Reply via email to