我正在使用vscode通过remote-ssh开发go项目。然而,在保存时格式化功能不起作用。我发现它在没有git的普通项目上可以正常工作。如果我删除.git
,它将按预期工作。有人能给我一些建议吗?
环境版本如下:
- vscode 1.63.2
- go 1.17.6
- 远程机器Ubuntu 20.04
- go扩展v0.30.0
我正在使用vscode通过remote-ssh开发go项目。然而,在保存时格式化功能不起作用。我发现它在没有git的普通项目上可以正常工作。如果我删除.git
,它将按预期工作。有人能给我一些建议吗?
环境版本如下:
最近我也遇到了同样的问题,自动格式化仅适用于没有.git目录的项目。解决该问题的方法是将“保存时进行格式化”模式从modificationsIfAvailable
更改为file
。由于在所有情况下我更喜欢使用modificationsIfAvailable
而非file
,因此我使用以下方式将formatOnSaveMode
仅更改为file
(对于go源代码文件):
"[go]": {
"editor.formatOnSaveMode": "file"
}
"editor.formatOnSaveMode": "modificationsIfAvailable"
,以避免对小的编辑重新格式化整个文件。看起来golang扩展不知道如何处理该模式。 - Mat Schaffer尝试通过按下Ctrl
+ Shift
+ P
手动格式化您的代码,打开命令面板并选择“格式化文档”。如果您的文件能够正确格式化而不出现任何问题,则意味着formatOnSave
设置存在问题。
选择默认格式化程序,而不是空值。例如:
"editor.defaultFormatter": "esbenp.prettier-vscode"
逐一卸载其他格式化程序,看是否有任何冲突。
尽量使其与语言相关。
为了更好的理解,请参考此链接:https://github.com/microsoft/vscode/issues/108447
关于Git特定:
可能是因为您正在运行 Git Atom
。Atom是一个桌面应用程序,因此可能会在访问远程安装路径时导致问题。请尝试安装 Git Repo
。
还要确保 Go:安装/更新工具
已经更新到最新版本。
{ "editor.formatOnSave": true, "go.alternateTools": { // "dlv": "${workspaceFolder}/.vscode/dlv-sudo.sh", // "dlv-dap": "${workspaceFolder}/.vscode/dlv-dap-sudo.sh" }, "go.languageServerFlags": [ "-rpc.trace" ], "gopls": { "verboseOutput": true } }
- WingPig99