diff options
| author | Oleg Pykhalov <go.wigust@gmail.com> | 2018-03-19 21:08:31 +0300 |
|---|---|---|
| committer | Oleg Pykhalov <go.wigust@gmail.com> | 2018-03-21 15:09:09 +0300 |
| commit | 97ca62c3f8dffbe83a4d252cf8d461587bff1c65 (patch) | |
| tree | 3289ec3ae1edea443440b25f340bf7e01cf13dac | |
| parent | wigust: Add emacs-validate. (diff) | |
| download | guix-wigust-97ca62c3f8dffbe83a4d252cf8d461587bff1c65.tar.gz | |
wigust: Add emacs-macrostep.
* wigust/packages/emacs.scm (emacs-macrostep): New public variable.
| -rw-r--r-- | wigust/packages/emacs.scm | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/wigust/packages/emacs.scm b/wigust/packages/emacs.scm index 2f8dcc1..e946ca2 100644 --- a/wigust/packages/emacs.scm +++ b/wigust/packages/emacs.scm @@ -3352,3 +3352,53 @@ compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag}, (description "This Emacs library provides two functions that perform schema validation.") (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+)))) |
