gnu: Add emacs-macrostep.

* gnu/packages/emacs.scm (emacs-macrostep): New public variable.
This commit is contained in:
Oleg Pykhalov 2018-05-02 19:01:08 +03:00
parent e33dba1564
commit 9968e444c5
No known key found for this signature in database
GPG Key ID: 7246E11C69B79569
1 changed files with 50 additions and 0 deletions

View File

@ -8804,3 +8804,53 @@ your Emacs.")
(synopsis "Sourcemap parser") (synopsis "Sourcemap parser")
(description "Sourcemap parser") (description "Sourcemap parser")
(license license:gpl3+))) (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+))))