summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorOleg Pykhalov <go.wigust@gmail.com>2018-05-02 19:01:08 +0300
committerOleg Pykhalov <go.wigust@gmail.com>2018-05-02 20:17:11 +0300
commit9968e444c5f86667e14c405550316e971d575742 (patch)
treea8b2c0503c260f0eb4dfd4c031d1e86136e775c1 /gnu
parente33dba1564f9ef32cc202fb19bbe0b90f0ef4a4b (diff)
downloadguix-patches-9968e444c5f86667e14c405550316e971d575742.tar
guix-patches-9968e444c5f86667e14c405550316e971d575742.tar.gz
gnu: Add emacs-macrostep.
* gnu/packages/emacs.scm (emacs-macrostep): New public variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/emacs.scm50
1 files changed, 50 insertions, 0 deletions
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 01e2e95509..ffa12c0c9b 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -8804,3 +8804,53 @@ your Emacs.")
(synopsis "Sourcemap parser")
(description "Sourcemap parser")
(license license:gpl3+)))
+
+(define-public emacs-macrostep
+ (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
+ (package
+ (name "emacs-macrostep")
+ (version (git-version "0.9" "1" commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/joddie/macrostep.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
+ (build-system emacs-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'remove-test
+ ;; Fails because of requirement ‘/bin/sh’.
+ (lambda _
+ (let ((file "macrostep-test.el"))
+ (chmod file #o644)
+ (emacs-batch-edit-file file
+ `(progn (progn (goto-char (point-min))
+ (re-search-forward
+ "(ert-deftest macrostep-expand-c-macros")
+ (beginning-of-line)
+ (kill-sexp))
+ (basic-save-buffer))))))
+ (add-before 'install 'check
+ (lambda _
+ (invoke "emacs" "--batch" "-L" "."
+ "-l" "macrostep-test.el"
+ "-f" "ert-run-tests-batch-and-exit"))))))
+ (home-page "https://github.com/joddie/macrostep")
+ (synopsis "Interactive macro-expander for Emacs")
+ (description "@code{macrostep} is an Emacs minor mode for interactively
+stepping through the expansion of macros in Emacs Lisp source code. It lets
+you see exactly what happens at each step of the expansion process by
+pretty-printing the expanded forms inline in the source buffer, which is
+temporarily read-only while macro expansions are visible. You can expand and
+collapse macro forms one step at a time, and evaluate or instrument the
+expansions for debugging with Edebug as normal (but see “Bugs and known
+limitations”, below). Single-stepping through the expansion is particularly
+useful for debugging macros that expand into another macro form. These can be
+difficult to debug with Emacs’ built-in macroexpand, which continues expansion
+until the top-level form is no longer a macro call.")
+ (license license:gpl3+))))