[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/go-mode 9d0732c 201/495: refactor godef error handling
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/go-mode 9d0732c 201/495: refactor godef error handling |
Date: |
Sat, 7 Aug 2021 09:05:13 -0400 (EDT) |
branch: elpa/go-mode
commit 9d0732ccb25ec29207181c1a9cbc2a7b7b3a45df
Author: Dominik Honnef <dominikh@fork-bomb.org>
Commit: Dominik Honnef <dominikh@fork-bomb.org>
refactor godef error handling
split out error checks and error reporting so that other functions can
reuse them.
---
go-mode.el | 37 ++++++++++++++++++++++++++-----------
1 file changed, 26 insertions(+), 11 deletions(-)
diff --git a/go-mode.el b/go-mode.el
index 25358df..b83027b 100644
--- a/go-mode.el
+++ b/go-mode.el
@@ -1042,6 +1042,29 @@ description at POINT."
(with-current-buffer outbuf
(split-string (buffer-substring-no-properties (point-min) (point-max))
"\n")))))
+(defun godef--successful-p (output)
+ (cond
+ ((string= "-" output)
+ nil)
+ ((string= "godef: no identifier found" output)
+ nil)
+ ((go--string-prefix-p "godef: no declaration found for " output)
+ nil)
+ ((go--string-prefix-p "error finding import path for " output)
+ nil)
+ (t
+ t)))
+
+(defun godef--error (output)
+ (cond
+ ((godef--successful-p output)
+ nil)
+ ((string= "-" output)
+ "godef: expression is not defined anywhere")
+ (t
+ output
+ )))
+
(defun godef-describe (point)
"Describe the expression at POINT."
(interactive "d")
@@ -1057,19 +1080,11 @@ description at POINT."
(interactive "d")
(condition-case nil
(let ((file (car (godef--call point))))
- (cond
- ((string= "-" file)
- (message "godef: expression is not defined anywhere"))
- ((string= "godef: no identifier found" file)
- (message "%s" file))
- ((go--string-prefix-p "godef: no declaration found for " file)
- (message "%s" file))
- ((go--string-prefix-p "error finding import path for " file)
- (message "%s" file))
- (t
+ (if (not (godef--successful-p file))
+ (message "%s" (godef--error file))
(push-mark)
(ring-insert find-tag-marker-ring (point-marker))
- (godef--find-file-line-column file other-window))))
+ (godef--find-file-line-column file other-window)))
(file-error (message "Could not run godef binary"))))
(defun godef-jump-other-window (point)
- [nongnu] elpa/go-mode 68e9626 177/495: fully implement prog-mode for older emacsen, (continued)
- [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
- [nongnu] elpa/go-mode 303ba8c 180/495: reformat code, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode ab6853d 183/495: use (buffer-base-buffer) instead of own local variable, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode de4e59a 194/495: require at least one space after "type", ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 9fde5fb 189/495: godef-jump: support jumping to package directories, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 7878794 187/495: send the correct content-length to the playground, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 68588e1 196/495: Support ff-find-other-file, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode a480b9a 205/495: more compact implementation of go--delete-whole-line, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 9d0732c 201/495: refactor godef error handling,
ELPA Syncer <=
- [nongnu] elpa/go-mode f664cff 197/495: correctly fontify methods when go-fontify-function-calls is nil, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 10281b7 202/495: add godoc-at-point, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 6ed8eec 206/495: style adjustments as per CL 106010043, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 0e030ef 207/495: style adjustment, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode b626ee9 213/495: readd link to gocode in README, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 541e559 212/495: when parsing GOPATH, split on the platform-specific path separator, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 40b55e3 211/495: improve README, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode e639832 208/495: add documentation for godoc-at-point, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 7e22639 215/495: remove LEGAL, treat this repository as a mirror of misc/emacs, ELPA Syncer, 2021/08/07
- [nongnu] elpa/go-mode 903fb9e 216/495: Cancel narrowing before gofmt, ELPA Syncer, 2021/08/07