VSCode json架构fileMatch模式

时间:2018-02-14 07:54:25

标签: json visual-studio-code

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

{
    "json.schemas": [
        {
            "fileMatch": [
                "/*.json"
            ],
            "url": "https://path/to/url.json"
        }
    ]
}

```

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

更新

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

{
    "json.schemas": [
        {
            "fileMatch": [
                "*.json",
                "!/.vscode/settings.json",
                "!/Some.json",
                "!/SomeOther.json"
            ],
            "url": "/Schema.json"
        }
    ]
}

需要排除的只是少数几个,所以我可以全部命名。

类似的方法可能可以解决原始问题,例如:

{
    "fileMatch": [
        "*.json",
        "!/Folder1/*.json",
        "!/Folder2/*.json"
    ],
}

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