]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.2] misc/emacs: support godef-jump on import statements
authorAndrew Gerrand <adg@golang.org>
Fri, 1 Nov 2013 00:24:57 +0000 (11:24 +1100)
committerAlan Donovan <adonovan@google.com>
Fri, 1 Nov 2013 00:24:57 +0000 (11:24 +1100)
««« CL 18230043 / f2b59b5163b0
misc/emacs: support godef-jump on import statements

The newest version of godef supports jumping to a package's source
directory if point is on an import statement.

R=adonovan
CC=golang-dev
https://golang.org/cl/18230043

»»»

R=golang-dev
CC=golang-dev
https://golang.org/cl/20620043

misc/emacs/go-mode.el

index 6cc03edb06022d2c5085b1c8a46da992c2d29304..b74bc45e8d5d9a5254cd43974541b09b4175553b 100644 (file)
@@ -950,11 +950,12 @@ will be commented, otherwise they will be removed completely."
   "Given a file name in the format of `filename:line:column',
 visit FILENAME and go to line LINE and column COLUMN."
   (if (not (string-match "\\(.+\\):\\([0-9]+\\):\\([0-9]+\\)" specifier))
-      (error "Unexpected godef output: %s" specifier)
+      ;; We've only been given a directory name
+      (funcall (if other-window #'find-file-other-window #'find-file) specifier)
     (let ((filename (match-string 1 specifier))
           (line (string-to-number (match-string 2 specifier)))
           (column (string-to-number (match-string 3 specifier))))
-      (with-current-buffer (funcall (if other-window 'find-file-other-window 'find-file) filename)
+      (with-current-buffer (funcall (if other-window #'find-file-other-window #'find-file) filename)
         (go--goto-line line)
         (beginning-of-line)
         (forward-char (1- column))
@@ -1008,6 +1009,8 @@ description at POINT."
           (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
           (push-mark)
           (ring-insert find-tag-marker-ring (point-marker))