[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/go-mode f79120b 166/495: add support for mode=count covera
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/go-mode f79120b 166/495: add support for mode=count coverage |
Date: |
Sat, 7 Aug 2021 09:05:05 -0400 (EDT) |
branch: elpa/go-mode
commit f79120be518aff67af675bfb2d928f7c1b5f3be4
Author: Dominik Honnef <dominikh@fork-bomb.org>
Commit: Dominik Honnef <dominikh@fork-bomb.org>
add support for mode=count coverage
---
go-mode.el | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++------------
1 file changed, 78 insertions(+), 19 deletions(-)
diff --git a/go-mode.el b/go-mode.el
index f20600e..5e77b61 100644
--- a/go-mode.el
+++ b/go-mode.el
@@ -162,17 +162,56 @@
"Coverage color of untracked code."
:group 'go-cover)
+(defface go-coverage-0
+ '((t (:foreground "#c00000")))
+ "Coverage color for uncovered code."
+ :group 'go-cover)
+(defface go-coverage-1
+ '((t (:foreground "#808080")))
+ "Coverage color for covered code with weight 1."
+ :group 'go-cover)
+(defface go-coverage-2
+ '((t (:foreground "#748c83")))
+ "Coverage color for covered code with weight 2."
+ :group 'go-cover)
+(defface go-coverage-3
+ '((t (:foreground "#689886")))
+ "Coverage color for covered code with weight 3."
+ :group 'go-cover)
+(defface go-coverage-4
+ '((t (:foreground "#5ca489")))
+ "Coverage color for covered code with weight 4."
+ :group 'go-cover)
+(defface go-coverage-5
+ '((t (:foreground "#50b08c")))
+ "Coverage color for covered code with weight 5."
+ :group 'go-cover)
+(defface go-coverage-6
+ '((t (:foreground "#44bc8f")))
+ "Coverage color for covered code with weight 6."
+ :group 'go-cover)
+(defface go-coverage-7
+ '((t (:foreground "#38c892")))
+ "Coverage color for covered code with weight 7."
+ :group 'go-cover)
+(defface go-coverage-8
+ '((t (:foreground "#2cd495")))
+ "Coverage color for covered code with weight 8.
+For mode=set, all covered lines will have this weight."
+ :group 'go-cover)
+(defface go-coverage-9
+ '((t (:foreground "#20e098")))
+ "Coverage color for covered code with weight 9."
+ :group 'go-cover)
+(defface go-coverage-10
+ '((t (:foreground "#14ec9b")))
+ "Coverage color for covered code with weight 10."
+ :group 'go-cover)
(defface go-coverage-covered
'((t (:foreground "#2cd495")))
"Coverage color of covered code."
:group 'go-cover)
-(defface go-coverage-uncovered
- '((t (:foreground "#c00000")))
- "Coverage color of uncovered code."
- :group 'go-cover)
-
-
(defvar go-mode-syntax-table
(let ((st (make-syntax-table)))
(modify-syntax-entry ?+ "." st)
@@ -968,7 +1007,7 @@ description at POINT."
(point)))
(defstruct go--covered
- start-line start-column end-line end-column covered)
+ start-line start-column end-line end-column covered count)
(defun go-coverage (input)
"Open a clone of the current buffer and overlay it with
@@ -976,7 +1015,9 @@ 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>")))
+ (gocov-buffer-name (concat (buffer-name) "<gocov>"))
+ (max-count 0)
+ divisor)
(with-temp-buffer
(insert-file-contents input)
@@ -990,6 +1031,9 @@ coverage information gathered via go test
-coverprofile=INPUT."
(start-line start-column end-line end-column num count)
(mapcar 'string-to-number rest)
+ (if (> count max-count)
+ (setq max-count count))
+
(if (and (string= (file-name-nondirectory file) file-name))
(push
(make-go--covered
@@ -997,10 +1041,14 @@ coverage information gathered via go test
-coverprofile=INPUT."
:start-column start-column
:end-line end-line
:end-column end-column
- :covered (/= count 0))
+ :covered (/= count 0)
+ :count count)
ranges)))
- (forward-line))))
+ (forward-line)))
+
+ (if (> max-count 0)
+ (setq divisor (log max-count))))
(with-current-buffer (or
(get-buffer gocov-buffer-name)
@@ -1014,15 +1062,26 @@ coverage information gathered via go test
-coverprofile=INPUT."
'face 'go-coverage-untracked)
(dolist (range ranges)
- (overlay-put
- (make-overlay
- (go--line-column-to-point
- (go--covered-start-line range)
- (go--covered-start-column range))
- (go--line-column-to-point
- (go--covered-end-line range)
- (go--covered-end-column range)))
- 'face (if (go--covered-covered range) 'go-coverage-covered
'go-coverage-uncovered))))
+ (let* ((count (go--covered-count range))
+ (norm (cond
+ ((= count 0)
+ -0.1)
+ ((= max-count 1)
+ 0.8)
+ (t
+ (/ (log count) divisor))))
+ (n (1+ (floor (* norm 9))))
+ (face (concat "go-coverage-" (number-to-string n))))
+
+ (overlay-put
+ (make-overlay
+ (go--line-column-to-point
+ (go--covered-start-line range)
+ (go--covered-start-column range))
+ (go--line-column-to-point
+ (go--covered-end-line range)
+ (go--covered-end-column range)))
+ 'face face))))
(display-buffer (current-buffer) 'display-buffer-reuse-window))))
- [nongnu] elpa/go-mode 2ec688b 143/495: kill gofmt errbuf if the buffer was already formatted, (continued)
- [nongnu] elpa/go-mode 2ec688b 143/495: kill gofmt errbuf if the buffer was already formatted, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 98e66f7 142/495: add docstring to go--apply-rcs-patch, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode fd03739 151/495: push mark to find-tag-marker-ring, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 4c13588 147/495: replace go-goto-opening-parenthesis implementation with backward-up-list, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode dc6bd34 154/495: swallow error in go-goto-opening-parenthesis, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode c2b4441 155/495: Require ring so that we don't rely on a transitive require, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 8a1c5df 159/495: minor style changes from CL, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 96eb71e 153/495: fix godef-jump on Windows, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 4e92adb 150/495: add godef-jump-other-window, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 2f67998 160/495: don't change point in go--line-column-to-point, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode f79120b 166/495: add support for mode=count coverage,
ELPA Syncer <=
- [nongnu] elpa/go-mode 1d5ddda 167/495: add coverage count as a tooltip, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode eaa47c2 165/495: remove old overlays, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 210bb30 174/495: go-coverage: only update max-count if it's a count for the file we're interested in, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 38f2465 164/495: display a helpful prompt in go-coverage, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 9db834a 178/495: changes from CL, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode f1c266d 172/495: enable godef to work in coverage buffers, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 4b1c93f 173/495: use error instead of message in godef--call, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 68e9626 177/495: fully implement prog-mode for older emacsen, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 7694963 181/495: detect stale coverage reports, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 520f070 182/495: allow users to customize path of 'go' tool., ELPA Syncer, 2021/08/07