【问题标题】:VSCode json schema fileMatch patternVSCode json 模式文件匹配模式
【发布时间】:2018-02-14 07:54:24
【问题描述】:

在 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

【问题讨论】:

  • 您可以更改根目录 JSON 文件的名称以匹配特定模式,例如:*.root.json。这样,架构仅适用于他们,即使它并不总是解决方案,但可能是一种解决方法。

标签: json visual-studio-code


【解决方案1】:

我遇到了类似的情况,但我不想在根目录中添加所有内容,而是想添加工作区(根)文件夹的子文件夹中的所有 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 并没有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    相关资源
    最近更新 更多