您可以在.vscode
目录下的工作区settings.json
中添加JSON模式。
以下是为ghooks设置添加智能感知到package.json
的示例:
"json.schemas": [
{
"fileMatch": [
"/package.json"
],
"schema": {
"type": "object",
"properties": {
"config": {
"properties": {
"ghooks": {
"type": "object",
"description": "Git hook configurations",
"properties": {
"applypatch-msg": {
"type": "string"
},
"pre-applypatch": {
"type": "string"
},
"post-applypatch": {
"type": "string"
},
"pre-commit": {
"type": "string"
},
"prepare-commit-msg": {
"type": "string"
},
"commit-msg": {
"type": "string"
},
"post-commit": {
"type": "string"
},
"pre-rebase": {
"type": "string"
},
"post-checkout": {
"type": "string"
},
"post-merge": {
"type": "string"
},
"pre-push": {
"type": "string"
},
"pre-receive": {
"type": "string"
},
"update": {
"type": "string"
},
"post-receive": {
"type": "string"
},
"post-update": {
"type": "string"
},
"pre-auto-gc": {
"type": "string"
},
"post-rewrite": {
"type": "string"
}
}
}
}
}
}
}
}
],
要获取特定属性值的智能感知,您可以查看此文档:
https://github.com/json-schema/json-schema/wiki/anyOf,-allOf,-oneOf,-not#oneof。
对于您的用例,动态生成包含所有可能的模板名称的JSON架构并通过
$schema
属性或配置将架构包含在您的JSON文件中也可能很有用。
"json.schemas": [
{
"fileMatch": [
"/json-files/*.json"
],
"url": "./templates.schema.json"
}
],
我不知道有没有vscode功能可以动态生成这样的模式。您可能想使用我在此扩展中使用的方法: https://github.com/skolmer/vscode-i18n-tag-schema - 一种使用节点模块动态生成模式文件的扩展。