diff options
author | Nicolas Graves <ngraves@ngraves.fr> | 2022-09-23 20:34:35 +0200 |
---|---|---|
committer | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2022-09-24 01:46:34 +0200 |
commit | 0b120ad5f88d32e0c716b1442fe1ea3c562b5586 (patch) | |
tree | 2671dd608c8976b1264271156a40c55ff015828e | |
parent | 7a4465473eb309123317b4b33054cf38a32558b9 (diff) |
gnu: Add emacs-eval-in-repl packages.
* gnu/packages/emacs-xyz.scm (make-emacs-eval-in-repl)
(emacs-eval-in-repl-cider, emacs-eval-in-repl-elm, emacs-eval-in-repl-erlang)
(emacs-eval-in-repl-geiser, emacs-eval-in-repl-hy, emacs-eval-in-repl-ielm)
(emacs-eval-in-repl-iex, emacs-eval-in-repl-javascript)
(emacs-eval-in-repl-lua, emacs-eval-in-repl-ocaml, emacs-eval-in-repl-prolog)
(emacs-eval-in-repl-python, emacs-eval-in-repl-racket)
(emacs-eval-in-repl-shell, emacs-eval-in-repl-slime, emacs-eval-in-repl-sly)
(emacs-eval-in-repl-sml): New variables.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
-rw-r--r-- | gnu/packages/emacs-xyz.scm | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index a2ab3f2b31..13d52ddc40 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -140,6 +140,7 @@ #:use-module (guix download) #:use-module (guix bzr-download) #:use-module (guix gexp) + #:use-module (guix i18n) #:use-module (guix git-download) #:use-module (guix hg-download) #:use-module (guix build-system gnu) @@ -241,6 +242,8 @@ #:use-module (gnu packages photo) #:use-module (gnu packages uml) #:use-module (gnu packages finance) + #:use-module (gnu packages ocaml) + #:use-module (gnu packages erlang) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (ice-9 match)) @@ -27465,6 +27468,94 @@ just the core of @code{eval-in-repl}---for the languages themselves, see their respective packages.") (license license:expat))) +(define* (make-emacs-eval-in-repl repl #:key + (eval-in-repl-package emacs-eval-in-repl) + (language (string-capitalize repl)) + (inputs '())) + "Construct an emacs-eval-in-repl package for REPL, which interprets LANGUAGE. +Optionally propagate INPUTS or use a different EVAL-IN-REPL-PACKAGE." + (package + (inherit eval-in-repl-package) + (name (string-append "emacs-eval-in-repl-" repl)) + (arguments + (list #:include + #~(list #$(string-append "eval-in-repl-" repl "\\.el")))) + (propagated-inputs (cons* eval-in-repl-package + (cond + ((procedure? inputs) (inputs)) + ((promise? inputs) (force inputs)) + (else inputs)))) + (description + (format #f (G_ "This package provides an ESS-like binding to send lines +or regions to a REPL from ~a buffers.") language)))) + +(define-public emacs-eval-in-repl-cider + (make-emacs-eval-in-repl "cider" #:language "Clojure" + #:inputs (list emacs-cider))) + +(define-public emacs-eval-in-repl-elm + (make-emacs-eval-in-repl "elm" #:inputs (list emacs-elm-mode))) + +(define-public emacs-eval-in-repl-erlang + (make-emacs-eval-in-repl "erlang" #:inputs (list emacs-erlang))) + +(define-public emacs-eval-in-repl-geiser + (make-emacs-eval-in-repl "geiser" #:language "Scheme" + #:inputs (list emacs-geiser))) + +(define-public emacs-eval-in-repl-hy + (make-emacs-eval-in-repl "hy" #:inputs (list emacs-hy-mode))) + +(define-public emacs-eval-in-repl-ielm + (make-emacs-eval-in-repl "ielm" #:language "Emacs Lisp")) + +(define-public emacs-eval-in-repl-iex + (make-emacs-eval-in-repl + "iex" #:language "Elixir" + #:inputs (delay + (list emacs-elixir-mode emacs-alchemist)))) + +(define-public emacs-eval-in-repl-javascript + (make-emacs-eval-in-repl "javascript" + #:inputs (list emacs-js2-mode emacs-js-comint))) + +(define-public emacs-eval-in-repl-lua + (make-emacs-eval-in-repl "lua" #:inputs (list emacs-lua-mode))) + +(define-public emacs-eval-in-repl-ocaml + (make-emacs-eval-in-repl "ocaml" #:language "OCaml" + #:inputs (delay (list emacs-tuareg)))) + +(define-public emacs-eval-in-repl-prolog + (make-emacs-eval-in-repl "prolog")) + +(define-public emacs-eval-in-repl-python + (make-emacs-eval-in-repl "python")) + +(define-public emacs-eval-in-repl-racket + (make-emacs-eval-in-repl "racket" #:inputs (list emacs-racket-mode))) + +(define-public emacs-eval-in-repl-ruby + (make-emacs-eval-in-repl "ruby" #:inputs (list emacs-inf-ruby))) + +(define-public emacs-eval-in-repl-scheme + (make-emacs-eval-in-repl "scheme")) + +(define-public emacs-eval-in-repl-shell + (make-emacs-eval-in-repl "shell")) + +(define-public emacs-eval-in-repl-slime + (make-emacs-eval-in-repl "slime" #:language "Common Lisp" + #:inputs (list emacs-slime))) + +(define-public emacs-eval-in-repl-sly + (make-emacs-eval-in-repl "sly" #:language "Common Lisp" + #:inputs (list emacs-sly))) + +(define-public emacs-eval-in-repl-sml + (make-emacs-eval-in-repl "sml" #:language "Standard ML" + #:inputs (list emacs-sml-mode))) + (define-public emacs-eval-sexp-fu-el (package (name "emacs-eval-sexp-fu-el") |