[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/go-mode 042f08c 169/495: if go-coverage is called in a cov
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/go-mode 042f08c 169/495: if go-coverage is called in a coverage buffer, update it by using stored variables |
Date: |
Sat, 7 Aug 2021 09:05:06 -0400 (EDT) |
branch: elpa/go-mode
commit 042f08c259e63997e01ec041c5d5b2e0c90a2f11
Author: Dominik Honnef <dominikh@fork-bomb.org>
Commit: Dominik Honnef <dominikh@fork-bomb.org>
if go-coverage is called in a coverage buffer, update it by using stored
variables
---
go-mode.el | 46 ++++++++++++++++++++++++++++++++++------------
1 file changed, 34 insertions(+), 12 deletions(-)
diff --git a/go-mode.el b/go-mode.el
index 2ca9f79..b5ebc6f 100644
--- a/go-mode.el
+++ b/go-mode.el
@@ -1009,18 +1009,37 @@ description at POINT."
(defstruct go--covered
start-line start-column end-line end-column covered count)
-(defun go-coverage (input)
+(defun go--coverage-file ()
+ "Return the coverage file to use, either by reading it from the
+current coverage buffer or by prompting for it."
+ (if (boundp 'go--coverage-current-file-name)
+ go--coverage-current-file-name
+ (read-file-name "Coverage file: " nil nil t)))
+
+(defun go--coverage-origin-buffer ()
+ "Return the buffer to base the coverage on."
+ (if (boundp 'go--coverage-origin-buffer)
+ go--coverage-origin-buffer
+ (current-buffer)))
+
+(defun go-coverage (&optional coverage-file)
"Open a clone of the current buffer and overlay it with
-coverage information gathered via go test -coverprofile=INPUT."
- (interactive "fCoverage file: ")
- (let ((ranges '())
- (file-name (file-name-nondirectory (buffer-file-name)))
- (gocov-buffer-name (concat (buffer-name) "<gocov>"))
- (max-count 0)
- divisor)
+coverage information gathered via go test -coverprofile=COVERAGE-FILE.
+If COVERAGE-FILE is nil, it will either be infered from the
+current buffer if it's already a coverage buffer, or be prompted
+for."
+ (interactive)
+ (setq coverage-file (or coverage-file (go--coverage-file)))
+ (let* ((ranges '())
+ (cur-buffer (current-buffer))
+ (origin-buffer (go--coverage-origin-buffer))
+ (file-name (file-name-nondirectory (buffer-file-name origin-buffer)))
+ (gocov-buffer-name (concat (buffer-name origin-buffer) "<gocov>"))
+ (max-count 0)
+ divisor)
(with-temp-buffer
- (insert-file-contents input)
+ (insert-file-contents coverage-file)
(go--goto-line 2) ;; Skip over mode
(while (not (eobp))
(let* ((parts (split-string (buffer-substring (point-at-bol)
(point-at-eol)) ":"))
@@ -1052,7 +1071,10 @@ coverage information gathered via go test
-coverprofile=INPUT."
(with-current-buffer (or
(get-buffer gocov-buffer-name)
- (clone-indirect-buffer gocov-buffer-name nil))
+ (make-indirect-buffer origin-buffer
gocov-buffer-name t))
+ (set (make-local-variable 'go--coverage-origin-buffer) origin-buffer)
+ (set (make-local-variable 'go--coverage-current-file-name) coverage-file)
+
(save-excursion
(remove-overlays)
(overlay-put
@@ -1082,8 +1104,8 @@ coverage information gathered via go test
-coverprofile=INPUT."
(overlay-put ov 'face face)
(overlay-put ov 'help-echo (format "Count: %d" count)))))
-
- (display-buffer (current-buffer) 'display-buffer-reuse-window))))
+ (if (not (eq cur-buffer (current-buffer)))
+ (display-buffer (current-buffer) 'display-buffer-reuse-window)))))
(provide 'go-mode)
- [nongnu] elpa/go-mode 97f55b8 131/495: style changes, (continued)
- [nongnu] elpa/go-mode 97f55b8 131/495: style changes, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode b97cfea 133/495: godef-jump: use push-mark., ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode a18b3f3 134/495: style change, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 55295da 128/495: formatting, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 50412f7 136/495: add gitignore, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode ec73086 157/495: remove unused code, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 5fd1c63 156/495: document go-goto-opening-parenthesis, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode f4d2977 158/495: add go-coverage to display coverage information, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode a5d5039 161/495: use go--goto-line where applicable, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 7ef7e56 163/495: correct docstrings of go-coverage-covered and go-coverage-uncovered, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 042f08c 169/495: if go-coverage is called in a coverage buffer, update it by using stored variables,
ELPA Syncer <=
- [nongnu] elpa/go-mode eea3ccf 170/495: move some coverage code into own functions, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode fdb2132 179/495: no free variables, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 9617f0c 176/495: move actual parsing of coverage file into own function, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 1949b57 184/495: match unused imports where path and package name differ, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode ff30ae1 190/495: use (function) for function symbols, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 50fb3b2 192/495: allow users to customize the gofmt command, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 49c885d 188/495: (foo)(bar) is not a function call when there's a letter directly preceding it, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 83c4e32 185/495: fix typo, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode b4cbae5 193/495: minor cleanups, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 4a96be2 186/495: handle empty "import ()" in go-goto-imports, ELPA Syncer, 2021/08/07