Visual Studio代码:Go - 重新格式化后,选项卡设置无效

时间:2017-12-05 13:10:35

标签: go visual-studio-code

在我的 Golang 设置出现问题之后,我只找到了一个解决方案,但现在,在格式化代码之后, VSCode 返回到上一个行为。

我希望我的标签只有 4个空格,而不是标签字符。

这是我设置的一部分:

"editor.tabCompletion": true,
"editor.detectIndentation": false,
"editor.tabSize": 4,
// Insert spaces when pressing Tab.
"editor.insertSpaces": true,
"go.formatOnSave": false,
"[go]": {
    "editor.detectIndentation": false,
    "editor.tabSize": 4,
    "editor.insertSpaces": true
},
"markdownlint.config": {
    "default": true,
    "MD033": false
}

按照链接查看重新格式化之前的图像

enter image description here

这是重新格式化后的图像

enter image description here

重新格式化之前和之后的状态栏保持不变

enter image description here

我已安装的扩展程序,以防它是一个扩展问题

enter image description here

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我的解决方案: 我在macOS上工作,必须从终端安装gnu-sed: 酿造gnu-sed

安装https://people.csail.mit.edu/albert/bluez-intro/x502.html扩展名。

编辑settings.json。我的设置:

{
    "editor.renderWhitespace": "all",
    "python.pythonPath": "/anaconda2/bin/python",
    "[go]": {
        "editor.insertSpaces": true,
        "editor.tabSize": 4,
        "editor.formatOnSave": true,
    },
    "runOnSave.statusMessageTimeout": 3000,
    "runOnSave.commands": [
        {
            "match": ".*\\.go",
            "notMatch": "",
            "command": "gsed -i 's|\\t|    |g' ${file}",
            "runIn": "backend"
        }
    ]
}

您可以在Linux上使用sed命令,而在Windows上使用类似的命令。 请注意gsed必须可用。 $ PATH应该被更新才能找到它。 另外,可以在“终端”中设置“ runIn”属性,以确保一切正常。