如何配置VS代码以在.json文件上启用代码完成(jsonschema支持)?

Mic*_*arf 11 json jsonschema visual-studio-code

Visual Stuido Code演示时间28:57-29:20和30:20-31:10中,显示了一些很酷的JSON代码完成.

在哪里以及如何将JSON文件的架构添加到项目中?

VS Code如何知道给定.json文件使用哪个模式?

Ash*_*sam 12

您可以在 $schema 节点中引用您的 JSON Schema 并立即在 VS Code 中获取您的智能感知。无需在其他任何地方进行配置。

例如,

{ "$schema": " http://json.schemastore.org/coffeelint ", "line_endings": "unix" }

Json 架构智能感知

这就是我所说的智能感知。JSON Schema 包含当前光标位置中可能的 JSON 属性列表,VS Code 可以提取该智能感知列表。

请注意,每个官方 JSON 都应该有一个具体的 JSON Schema 来证明数据完整性。这个答案仍然有效!

  • 好点,这里是将架构直接添加到 JSON 文件的资源 https://code.visualstudio.com/docs/languages/json#_mapping-in-the-json (3认同)

小智 11

JSON模式与文件的关联在属性"json.schemas"下的设置(文件,首选项,用户设置或工作区设置)中完成.

这是一个如何将bower的JSON模式与bower模式相关联的示例.

"json.schemas": [
    {
        "fileMatch": [
            "/bower.json",
            "/.bower.json"
        ],
        "url": "http://json.schemastore.org/bower"
    },
    ...
Run Code Online (Sandbox Code Playgroud)

您还可以使用工作区中的模式或在设置本身中定义模式.有关示例,请访问https://code.visualstudio.com/docs/languages/json.

  • 如果文档可以解释可以使用哪些模式(例如`**.foo.json`)会很好 (2认同)

Ste*_*veC 11

我让 VS Code 使用 JSON 模式的三种方式是......

因此,对于来自... http://json.schemastore.org的 Azure Function 架构之类的东西

"json.schemas": [
  {
    "fileMatch": [
      "/function.json"
    ],
    "url": "http://json.schemastore.org/function"
  }
]
Run Code Online (Sandbox Code Playgroud)
  1. User Settings" 中,即作为settings.json'C:\Users\\AppData\Roaming\Code\User' 中用户的一个元素

  2. “工作区设置”中,然后在.code-workspace文件中的“设置”部分……假设您使用的是 VS Code 工作区

  3. “文件夹设置”中,它settings.json.vscode目录中的“设置”部分……假设您使用的是 VS Code 工作区

文件夹优先于工作区,工作区优先于用户

并且工作区和文件夹使用相对路径,例如在.code-workspace文件中...

"settings": {
  "json.schemas": [
    {
      "fileMatch": [
        "/task.json"
      ],
      "url": "./schema/tasks.schema.json"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

或在文件夹设置settings.json\.vscode\...

"json.schemas": [
  {
    "fileMatch": [
      "/task.json"
    ],
    "url": "./schema/tasks.schema.json"
  }
]
Run Code Online (Sandbox Code Playgroud)