summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorDominik Honnef <dominik.honnef@gmail.com>2014-02-18 22:23:55 -0500
committerDominik Honnef <dominik.honnef@gmail.com>2014-02-18 22:23:55 -0500
commit812d3df2323c3c5b1e2389ea954587793799e932 (patch)
tree58302eb8c0d1e848a5a7fe594c2a9b22a771cf71 /misc
parentf68b719dc7b78ad92e23e0d6bef1000c9fe8ef2a (diff)
downloadgo-812d3df2323c3c5b1e2389ea954587793799e932.tar.gz
misc/emacs: add support for ff-find-other-file
c-mode classically uses ff-find-other-file to toggle between headers and implementation. For Go it seemingly makes sense to jump between implementation and test. While there's no enforced mapping of file names for tests, the mapping in this CL seems to be very common at least throughout the standard library, and ff-find-other-file fails gracefully when the mapping doesn't apply. LGTM=adonovan R=adonovan CC=golang-codereviews https://codereview.appspot.com/65750044 Committer: Alan Donovan <adonovan@google.com>
Diffstat (limited to 'misc')
-rw-r--r--misc/emacs/go-mode.el10
1 files changed, 10 insertions, 0 deletions
diff --git a/misc/emacs/go-mode.el b/misc/emacs/go-mode.el
index b5a2d8f89..e19dcdcde 100644
--- a/misc/emacs/go-mode.el
+++ b/misc/emacs/go-mode.el
@@ -7,6 +7,7 @@
(require 'cl)
(require 'etags)
(require 'ffap)
+(require 'find-file)
(require 'ring)
(require 'url)
@@ -168,6 +169,13 @@ from https://github.com/bradfitz/goimports."
:type 'string
:group 'go)
+(defcustom go-other-file-alist
+ '(("_test\\.go\\'" (".go"))
+ ("\\.go\\'" ("_test.go")))
+ "See the documentation of `ff-other-file-alist' for details."
+ :type '(repeat (list regexp (choice (repeat string) function)))
+ :group 'go)
+
(defface go-coverage-untracked
'((t (:foreground "#505050")))
"Coverage color of untracked code."
@@ -561,6 +569,8 @@ recommended that you look at goflymake
(set (make-local-variable 'go-dangling-cache) (make-hash-table :test 'eql))
(add-hook 'before-change-functions (lambda (x y) (setq go-dangling-cache (make-hash-table :test 'eql))) t t)
+ ;; ff-find-other-file
+ (setq ff-other-file-alist 'go-other-file-alist)
(setq imenu-generic-expression
'(("type" "^type *\\([^ \t\n\r\f]*\\)" 1)