summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorgen Schäfer <Jorgen.Schaefer@gmail.com>2018-08-31 10:22:46 +0200
committerGitHub <noreply@github.com>2018-08-31 10:22:46 +0200
commit5821cd06d2bb5c157ed106b71607657cfa9b4ec9 (patch)
treefda113cfe570e8e87c66fc453b8be89fc3a222c4
parentbc13b53deb1c2b590c33f5e03508b864a0116d5e (diff)
parent633061080e62feb02c75cce27e39c93b24f6e390 (diff)
Merge pull request #131 from snogge/markdown
Add more markdown running functions
-rw-r--r--buttercup.el46
1 files 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))