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

And*_*e M 4 json visual-studio-code

有没有办法告诉Visual Studio代码为给定的文件扩展名应用特定的自动缩进规则?我们当前的settings.json文件是:

{
    "editor.tabSize": 4,
    "editor.insertSpaces": true,
    "files.associations": {
        "**/src/**/*.js": "javascriptreact"
    }
}
Run Code Online (Sandbox Code Playgroud)

我确实尝试了以下方法,但它对我不起作用:

{
    "files.associations": {
        "**/src/**/*.js": "javascriptreact",
        "package.json": "json"
    },
    "[javascriptreact]": {
        "editor.insertSpaces": true,
        "editor.tabSize": 4
    },
    "[json]": {
        "editor.insertSpaces": true,
        "editor.tabSize": 2
    }
}
Run Code Online (Sandbox Code Playgroud)

我做过实验[*.json],但那也没有用.

我使用的是Visual Studio Code 1.15.0.

Mar*_*ark 11

[为简单起见,我会将各种解决方案放到一个答案中.]

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

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

并选择了你的语言.选择"JavaScript React"将打开并在settings.json文件中创建一个条目,您可以在其中添加javascript特定的编辑器设置,例如用于选项卡的空格数.

奇怪的是,新的设置条目被附加到文件的末尾,而文件不会自动滚动到该点.因此,滚动到settings.json文件的末尾以查找特定于语言的新条目.进入那个你可以把事情像:

 "[json]": {
    "editor.detectIndentation": false,
    "editor.tabSize": 4,
    "editor.insertSpaces": true
 }
Run Code Online (Sandbox Code Playgroud)

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

但是,这些设置不会更改文件中的现有间距,但新选项卡将反映您的更改...

除非您有一个设置相同编辑器设置的冲突扩展名.我知道"更漂亮"的扩展会这样做.OP @Andre M报告扩展"美化"也与标签空格冲突.