;;; lang/go/autoload.el -*- lexical-binding: t; -*- ;;;###autoload ;; TODO (defun +go/build ()) ;; ;; Tests ;; (defvar +go-test-last nil "The last test run.") (defun +go--run-tests (args) (save-selected-window (async-shell-command (concat "go test " args)))) ;;;###autoload (defun +go/test-rerun () (interactive) (if +go-test-last (funcall +go-test-last) (+go/run-all-tests))) ;;;###autoload (defun +go/test-all () (interactive) (+go--run-tests "")) ;;;###autoload (defun +go/test-nested () (interactive) (+go--run-tests "./...")) ;;;###autoload (defun +go/test-single () (interactive) (if (string-match "_test\\.go" buffer-file-name) (save-excursion (re-search-backward "^func[ ]+\\(([[:alnum:]]*?[ ]?[*]?[[:alnum:]]+)[ ]+\\)?\\(Test[[:alnum:]_]+\\)(.*)") (+go--run-tests (concat "-run" "='" (match-string-no-properties 2) "'"))) (error "Must be in a _test.go file")))