Files
react-native-devtools-frontend/scripts/json_validator/module.schema.json
T
Jack Lynch f0d1424881 Ready module.jsons for multi-keypress shortcuts
Currently, ShortcutRegistry allows multiple shortcuts to be stored
within the same binding in a module.json, e.g. `"shortcut": "F8
Ctrl+\\"` creates two shortcuts, one on F8 and another on Ctrl+\. When
multi-keypress shortcuts/chords are added in the future, they'll use the
same format such that the above example would be interpreted as a single
shortcut bound to the F8 Ctrl+\ sequence. In order to allow that, it's
necessary to split up all of the existing shortcuts that are stored in
space-delimited strings so that they'll continue to function as
expected. This CL also updates the module.schema.json to disallow spaces
in shortcuts, a restriction that will be removed once multi-keypress
shortcuts are implemented.

Custom keyboard shortcuts design doc: https://docs.google.com/document/d/1oOPSWPxCHvMoBZ0Fw9jwFZt6gP4lrsrsl8DEAp-Hy7o/edit#heading=h.2xpjzz3fl1ju

Bug: 174309
Change-Id: I853f9918ad2892b2f4c4f3aec53013d7a6455f67
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2123807
Reviewed-by: Robert Paveza <Rob.Paveza@microsoft.com>
Reviewed-by: Vidal Diazleal <vidorteg@microsoft.com>
Commit-Queue: Jack Lynch <jalyn@microsoft.com>
2020-04-08 23:34:59 +00:00

100 lines
2.1 KiB
JSON

{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"additionalProperties": false,
"properties": {
"extensions": {
"type": "array",
"description": "Extension points",
"items": {
"properties": {
"type": {"type": "string"},
"order": {"type": "number"},
"title": {"type": "string"},
"options": {
"type": "array",
"items": {
"properties": {
"title": {"type": "string"},
"category": {"type": "string"}
}
}
}
},
"if": {
"properties": {"type": {"const": "action"}}
},
"then": {
"properties": {
"bindings": {
"type": "array",
"items": {
"required": ["shortcut"],
"properties": {
"shortcut": {
"type": "string",
"pattern": "^[^ ]+$"
},
"platform": {"type": "string"}
}
}
}
},
"anyOf": [
{
"required": ["title"]
},
{
"required": ["options"],
"properties": {
"options": {
"minItems": 1,
"items": {
"required": ["title"]
}
}
}
}
],
"required": ["category"]
}
}
},
"dependencies": {
"type": "array",
"items": {
"type": "string"
}
},
"scripts": {
"type": "array",
"items": {
"type": "string"
}
},
"modules": {
"type": "array",
"items": {
"type": "string"
}
},
"resources": {
"type": "array",
"items": {
"type": "string"
}
},
"skip_compilation": {
"type": "array",
"items": {
"type": "string"
}
},
"experiment": {
"type": "string"
}
},
"definitions": {
}
}