Visual Studio Code(vscode)中针对文件扩展名的自动缩进规则是什么?

10

有没有办法告诉Visual Studio Code为特定的文件扩展名应用特定的自动缩进规则?我们目前的settings.json文件如下:

{
    "editor.tabSize": 4,
    "editor.insertSpaces": true,
    "files.associations": {
        "**/src/**/*.js": "javascriptreact"
    }
}

我尝试了以下方法,但对我没有起作用:

{
    "files.associations": {
        "**/src/**/*.js": "javascriptreact",
        "package.json": "json"
    },
    "[javascriptreact]": {
        "editor.insertSpaces": true,
        "editor.tabSize": 4
    },
    "[json]": {
        "editor.insertSpaces": true,
        "editor.tabSize": 2
    }
}

我尝试使用[*.json]进行实验,但也没有成功。

我正在使用Visual Studio Code 1.15.0版本。


你是否也将默认的 "editor.detectIndentation": true 改为了 false?如果保持为 true,该设置会覆盖你尝试做的任何操作。 - Mark
我尝试在工作区设置中更新它,但似乎没有帮助。 - Andre M
1
对我来说似乎可以工作,我在settings.json文件中使用"[json]"规则,它确实改变了制表符大小。您可以在编辑器右下角看到空格计数。我注意到,如果您已经有缩进,那么一行中的第一个制表符将匹配该缩进,然后使用您的新设置。您是否有与prettier冲突的扩展程序? - Mark
没错,就是这样,我需要重新加载窗口才能使更改生效。 - Andre M
你是否有冲突的扩展?或者哪个建议解决了它,不太清楚。如果我回答了这个问题,我会把它放到正式的答案中!哈哈。 - Mark
我有一个美化扩展,它显示是为Javascript设计的,但似乎也扩展到了*.json文件。 - Andre M
1个回答

26

[为方便起见,我将各种解决方案放在一个答案中。]

Vscode有一种方便的方法来编辑特定语言的编辑器设置

Ctrl-Shift-P : 首选项:配置语言特定设置...

并选择您要的语言。选择 "JavaScript React" 将打开并在您的settings.json文件中创建一个条目,在其中可以添加JavaScript React特定的编辑器设置,如制表符使用的空格数。

奇怪的是,新的设置条目会附加到文件末尾,而文件不会自动滚动到该点。因此,请滚动到settings.json文件的末尾以找到您的新语言特定条目。在其中,您可以放置以下内容:

 "[json]": {
    "editor.detectIndentation": false,
    "editor.tabSize": 4,
    "editor.insertSpaces": true
 }

请注意,"editor:detectIndentation" 默认值为true,因此您必须将其更改为false以使tabSize和insertSpaces生效。在settings.json文件中进行上述更改将立即显示它在该json文件中的工作状态(请参见编辑器右下角的“Spaces:#”项)。

但是,这些设置不会更改文件中现有的间距,但新的制表符会反映您的更改……

除非您拥有一个设置相同编辑器设置的冲突扩展程序。我知道“prettier”扩展程序会这样做。OP @ Andre M报告说扩展名“beautify”也与空格标签发生冲突。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接