branch: elpa/buttercup commit 5821cd06d2bb5c157ed106b71607657cfa9b4ec9 Merge: bc13b53 6330610 Author: Jorgen Schäfer <jorgen.schae...@gmail.com> Commit: GitHub <nore...@github.com>
Merge pull request #131 from snogge/markdown Add more markdown running functions --- buttercup.el | 46 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/buttercup.el b/buttercup.el index d32e92b..4bc8040 100644 --- a/buttercup.el +++ b/buttercup.el @@ -1282,18 +1282,26 @@ current directory." (buttercup-run))) ;;;###autoload -(defun buttercup-run-markdown () - "Run all test suites defined in Markdown files passed as arguments. -A suite must be defined within a Markdown \"lisp\" code block." - (let ((lisp-buffer (generate-new-buffer "elisp"))) - (dolist (file command-line-args-left) - (with-current-buffer (find-file-noselect file) - (goto-char (point-min)) - (let ((case-fold-search t)) - (while (re-search-forward - "```\\(?:emacs-\\|e\\)?lisp\n\\(\\(?:.\\|\n\\)*?\\)```" - nil t) - (let ((code (match-string 1))) +(defun buttercup-run-markdown-buffer (&rest markdown-buffers) + "Run all test suites defined in MARKDOWN-BUFFERS. +A suite must be defined within a Markdown \"lisp\" code block. +If MARKDOWN-BUFFERS is empty (nil), use the current buffer." + (interactive) + (unless markdown-buffers + (setq markdown-buffers (list (current-buffer)))) + (let ((lisp-buffer (generate-new-buffer "elisp")) + (case-fold-search t) + code + buttercup-suites) + (dolist (markdown-buffer markdown-buffers) + (with-current-buffer markdown-buffer + (save-excursion + (save-match-data + (goto-char (point-min)) + (while (re-search-forward + "```\\(?:emacs-\\|e\\)?lisp\n\\(\\(?:.\\|\n\\)*?\\)```" + nil t) + (setq code (match-string 1)) (with-current-buffer lisp-buffer (insert code))))))) (with-current-buffer lisp-buffer @@ -1302,6 +1310,20 @@ A suite must be defined within a Markdown \"lisp\" code block." (point-max))) (buttercup-run))) +;;;###autoload +(defun buttercup-run-markdown () + "Run all test suites defined in Markdown files passed as arguments. +A suite must be defined within a Markdown \"lisp\" code block." + (apply #'buttercup-run-markdown-buffer (mapcar #'find-file-noselect + command-line-args-left))) + +;;;###autoload +(defun buttercup-run-markdown-file (file) + "Run all test suites defined in Markdown FILE. +A suite must be defined within a Markdown \"lisp\" code block." + (interactive "fMarkdown file: ") + (buttercup-run-markdown-buffer (find-file-noselect file))) + (eval-when-compile ;; Defined below in a dedicated section (defvar buttercup-reporter))