Thực thi gofmt khi lưu tệp trong IntelliJ


Câu trả lời:


132

Tất nhiên bạn có thể.

  1. cài đặt plugin File Watchers
  2. mở "Preferences-> Tools-> File Watchers" & Thêm một trình theo dõi mới
  3. thiết lập File Type: Go, Program: con đường abosolute của gofmt, Arguments:-w $FilePath$
  4. nhấp chuột OK

nhập mô tả hình ảnh ở đây


4
Điều này luôn định dạng lại mọi tệp trong repo của tôi, thậm chí cả Godeps / *. Vì vậy, tôi đã mã hóa đường đi của mình. Có cách nào để sử dụng $ FilePath $ mà không cần định dạng đệ quy mọi tệp trong repo không? Có vẻ như FilePath đang có một hiệu ứng domino đối với tôi.
jayunit 100

1
@ jayunit100 Bạn có thể định cấu hình tham số Phạm vi 1. thêm phạm vi cục bộ 2. đặt tên và đặt Mẫu thành: file [$ proj]: * / &&! file [$ proj]: Godeps // *! ảnh chụp nhanh
yee

1
Điều này không cho phép tôi chỉnh sửa các tệp của mình. Khi tôi cố gắng thêm một dòng mới để viết thêm một số mã nữa, chương trình sẽ đưa tôi trở lại dòng trước đó và xóa dòng mới của tôi. làm thế nào để tôi ngăn chặn điều đó? lưu ý: using phpstorm
bia.migueis

6
Không sao đâu, tôi đã đoán ra. "đồng bộ hóa tệp ngay lập tức" sẽ làm cho nó chạy fmt ngay sau khi bạn thực hiện bất kỳ thay đổi nào. chỉ bỏ chọn nó và nó sẽ chỉ chạy trên tập tin tiết kiệm (hoặc cửa sổ Không tập trung)
bia.migueis

1
Lưu ý, câu trả lời này hiện đã hơi lỗi thời: plugin File Watchers hiện có trình theo dõi "go fmt" được tạo sẵn mà bạn có thể thêm mà không cần phải thực hiện nhiều thao tác.
Aaron Shaver

61

Gogland EAP 16 không dùng nữa các tác vụ Khi lưu và thay thế chúng bằng plugin Người theo dõi tệp .

Nếu bạn đã định cấu hình các hành động On Save trước đó, IDE sẽ nhắc bạn cài đặt plugin và định cấu hình mọi thứ tự động. Nếu bạn muốn tự thiết lập nó từ đầu, hãy kiểm tra xem bạn có plugin File Watchers hay không và nếu chưa cài đặt nó.

Bật gofmt:

  1. Đi tới Settings | Tools | File Watchers.
  2. Nhấp vào +nút và chọn go fmt.
  3. Các giá trị mặc định là tốt.
  4. Trong Tùy chọn nâng cao, chọn:
    • Tự động lưu các tệp đã chỉnh sửa để kích hoạt trình theo dõi
    • Kích hoạt người theo dõi các thay đổi bên ngoài
  5. Nhấp vào ok!

Cấu hình

Bạn có thể làm tương tự cho goimportsgometalinter.


8
Trên thực tế, tốt hơn hết bạn nên chỉ thiết lập goimports thay vì go fmt vì nó cũng thực hiện fmt, như được chỉ định trong tài liệu goimports: "ngoài việc sửa lỗi nhập, goimports cũng định dạng mã của bạn theo cùng phong cách với gofmt để nó có thể được sử dụng thay thế cho của trình soạn thảo gofmt-on-tiết kiệm móc"
dux2

2
Đây là câu trả lời chính xác cho Goland như của tháng 10 năm 2018
George Aristy

54

Nếu bạn đang sử dụng Gogland, bạn có tùy chọn Bật Lưu trong Tùy chọn

nhập mô tả hình ảnh ở đây


1
gogland không giống như plugin go.
spotter

Nó gần giống như plugin python và pycharm. Sự khác biệt duy nhất có thể là độ trễ khi cập nhật. Khác thì điều này - nó cung cấp cho bạn bộ tính năng chính xác.
Alex Pavlenko

24
Cơ chế Bật lưu không được dùng nữa và sẽ bị xóa trong tương lai. Sử dụng plugin File Watchers để thay thế
Zangetsu

3
Nhưng ngay cả trong GoLand mới nhất, tôi không thấy tùy chọn này. Tôi mặc dù khi nhấp chuột phải vào tên tệp, trong "Go", tôi có thể fmt tệp. nhưng tôi không thấy tùy chọn để bật nó trong quá trình lưu tự động.
curiousengineer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.