VSCode JSON模式文件匹配模式

Ste*_*eve 5 json visual-studio-code

在VSCode中,我试图将sjson模式添加到我拥有的项目中。我的.vscode/settings.json文件是这样的:

{
    "json.schemas": [
        {
            "fileMatch": [
                "/*.json"
            ],
            "url": "https://path/to/url.json"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

```

这可行,但是当前正在应用到项目中所有文件夹中的所有.json文件,我不需要。我希望它仅适用于根目录中的所有.json文件。我必须在该fileMatch属性中添加什么才能启用此功能?

更新资料

尝试了以下方法。这些工作,但适用于每个.json文件:

  • "/*.json"
  • "*.json"

这些根本不起作用(没有.json文件获取架构):

  • "${workspaceFolder}/*.json"
  • "${workspaceFolder}*.json"
  • "${workspaceFolder}\\*.json"
  • 以上3个没有 {}
  • 以上4同 workspaceRoot

小智 1

我遇到了类似的情况,但我不想添加根目录中的所有内容,而是想添加工作区(根)文件夹的子文件夹中的所有 JSON 文件。我使用的解决方案是添加所有 JSON,然后排除我不需要的 JSON(包括设置文件本身):

{
    "json.schemas": [
        {
            "fileMatch": [
                "*.json",
                "!/.vscode/settings.json",
                "!/Some.json",
                "!/SomeOther.json"
            ],
            "url": "/Schema.json"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

需要排除的只是几个,所以我只能列出它们。

类似的方法可能适用于原始问题,如下所示:

{
    "fileMatch": [
        "*.json",
        "!/Folder1/*.json",
        "!/Folder2/*.json"
    ],
}
Run Code Online (Sandbox Code Playgroud)

这里唯一的问题是 VS Code 似乎不允许文件夹名称使用通配符。因此,不幸的是,使用类似 Glob 的匹配来排除/*/*.jsonor 并/**/*.json没有帮助。