blob: b2820611fe7dccac83e6979d9d0f8b92de43a826 [file] [log] [blame] [view]
# VSCode Workspace
This is the tools and the template used for updating //engine.code-workspace.
VSCode uses a custom version of JSONC for their config files, those config files
don't provide any mechanism for reducing redundancy. Since the engine has a lot
of test targets, without that mechanism it can get very unwieldy. YAML does
however support ways to reduce redundancy, namely anchors.
## Updating //engine.code-workspace
```sh
./refresh.sh
```
## Backporting //engine.code-workspace
If something is accidentally introduced into //engine.code-workspace without editing
the YAML file here there are tools that can be used to more easily fix that.
```sh
./merge.sh
```
Since JSON doesn't support anchors some work may be needed to resolve any
conflicts that happen when merging. These aren't necessary to use the VSCode
workspace, just to edit them.
## Requirements
The `refresh.sh` and `merge.sh` tools require certain tools to be present on
your PATH. They can be installed on macos with homebrew.
- `json5` - A variant of JSON that is a superset of the JSON variant that VSCode
uses. It's used to strip away comments and trailing commas.
- `yq` - This is a tool for manipulating yaml files. It can convert back and
forth from YAML to YAML and merge YAML files.