8000 Select Go files correctly before rename by dajiaohuang · Pull Request #450 · dominikh/go-mode.el · GitHub
[go: up one dir, main page]

Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions go-rename.el
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@
:type 'string
:group 'go-rename)

(defun go-rename--go-buffer-p ()
"Return non-nil when the current buffer visits a Go source file."
(and buffer-file-name
(equal (file-name-extension buffer-file-name) "go")))

;;;###autoload
(defun go-rename (new-name &optional force)
"Rename the entity denoted by the identifier at point, using
Expand All @@ -52,9 +57,7 @@ the `gorename' tool. With FORCE, call `gorename' with the
(if (buffer-modified-p)
(error "Please save the current buffer before invoking go-rename"))
;; Prompt-save all other modified Go buffers, since they might get written.
(save-some-buffers nil #'(lambda ()
(and (buffer-file-name)
(string= (file-name-extension (buffer-file-name)) ".go"))))
(save-some-buffers nil #'go-rename--go-buffer-p)
(let* ((posflag (format "-offset=%s:#%d"
buffer-file-name
(1- (position-bytes (point)))))
Expand Down
16 changes: 16 additions & 0 deletions test/go-rename-test.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
;;; go-rename-test.el --- Tests for go-rename.el -*- lexical-binding: t; -*-

(require 'ert)
(add-to-list 'load-path "..")
(require 'go-rename)

(ert-deftest go-rename--go-buffer-p-selects-go-files ()
(with-temp-buffer
(setq buffer-file-name "/tmp/example.go")
(should (go-rename--go-buffer-p))
(setq buffer-file-name "/tmp/example.go.txt")
(should-not (go-rename--go-buffer-p))
(setq buffer-file-name nil)
(should-not (go-rename--go-buffer-p))))

;;; go-rename-test.el ends here
0