読者です 読者をやめる 読者になる 読者になる

program.goと program_test.goを toggleする関数

emacs go

go-modeには無いようなので自作。
ストファイルの命名規則が決まっているので簡単です。

(defun my/go-toggle-test-file ()
  (interactive)
  (let ((file (buffer-file-name)))
    (unless file
      (error "Error: this buffer is not related to real file"))
    (let ((basename (file-name-nondirectory file)))
      (if (string-match "_test" file)
          (find-file (replace-regexp-in-string "_test" "" basename))
        (find-file (replace-regexp-in-string "\\.go\\'" "_test.go" basename))))))

(define-key go-mode-map (kbd "C-c C-t") 'my/go-toggle-test-file)