goland 如何使用 gofmt?

goland how to use gofmt?

我开始学习golang并安装GoLand from JetBrains。我正在阅读The Go Programming Language这本书,作者在第一章中强烈建议在每次保存前使用gofmt工具。我如何在 GoLand 中遵循此建议?

GoLand 具有 go fmt 您的文件或项目的命令。右键单击您的文件,您将在 "Go tools" 下找到它。你可以在那里看到它的快捷方式。

您也可以使用 "Reformat code" 命令(对我来说绑定到 Command-Alt-L)。它与 go fmt 并非 100% 相同,但非常接近。也适用于其他语言。

如果您有一个打开的终端,您可以运行 go fmt ./... 格式化目录(包括子目录)中的所有文件。您可以在每次提交时将其放入 git 提交钩子以 运行 它。

正如其他人提到的,在首选项→工具→文件观察器下有一个文件观察器部分,您可以在其中设置每次保存 Go 文件时 运行 go fmtgoimports

您可以通过以下两种方式之一进行操作:

  1. 对于 Goland:首选项 -> 工具 -> 文件观察器并启用 go fmt。这样每次保存都会格式化文件。

  2. 代码完成后。只需 运行 在终端中所需目录或所需文件中的命令 gofmt -s -w .。它将根据您的需要格式化整个 directory/file。

只想再添加 1 个选项。你可以在每次要提交到 git 时自动应用 go fmt。当您打开提交 window 时,在 Before Commit 部分下,有一个 Go fmt 复选框。只是检查一下。稍后当您进行另一次提交时,将选中该复选框的默认值。所以,你只需要检查一次。然后 go fmt 将在你提交之前自动 运行。

如果您的 GoLand 2021.2 或更高版本,您可以在 Preferences/Settings 下启用 运行 gofmt on code reformat 选项 |编辑|代码风格 |去 |其他(默认开启)

之后,执行代码 |重新格式化 CodeOption + Command + L on macOS)和 gofmt 将是在内部 GoLand 格式化程序之后执行。

现在 Goland 有一个部分可以在不设置 File Watchers:

的情况下重新格式化文件保存的代码
  • Settings -> Tools -> Actions On Save下你可以激活第一个条目