From 558fa149079368a7abca01e35f23aafcff86f575 Mon Sep 17 00:00:00 2001 From: haixuanTao Date: Wed, 15 May 2024 15:21:23 +0200 Subject: [PATCH] Add a readme in getting started with VSCode YAML Support --- libraries/core/README.md | 24 +++++++++++++++++++++++ libraries/core/dora-schema.json | 2 +- libraries/core/src/bin/generate_schema.rs | 1 + 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/libraries/core/README.md b/libraries/core/README.md index d31e1901..010d87de 100644 --- a/libraries/core/README.md +++ b/libraries/core/README.md @@ -5,3 +5,27 @@ ```bash cargo run -p dora-core generate_schemas ``` + +## VSCode YAML Dataflow Support + +We can pass the JSON Schema to VSCode [`redhat.vscode-yaml`](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) to enables features such as: + +- Type validation +- Suggestions +- Documentation + +### Getting started + +1. Install [`redhat.vscode-yaml`](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) + +2. Open User Settings(JSON) in VSCode within `ctrl`+ `shift` + `p` search bar. + +3. Add the following: + +```json + "yaml.schemas": { + "https://raw.githubusercontent.com/dora-rs/dora/json-schemas/libraries/core/dora-schema.json": "/*" + }, +``` + +And you should be set! 🔥 diff --git a/libraries/core/dora-schema.json b/libraries/core/dora-schema.json index da0ea6d1..32a0426b 100644 --- a/libraries/core/dora-schema.json +++ b/libraries/core/dora-schema.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Descriptor", + "title": "dora-rs specification", "description": "Dataflow description", "type": "object", "required": [ diff --git a/libraries/core/src/bin/generate_schema.rs b/libraries/core/src/bin/generate_schema.rs index 959d6429..b846fd1b 100644 --- a/libraries/core/src/bin/generate_schema.rs +++ b/libraries/core/src/bin/generate_schema.rs @@ -25,6 +25,7 @@ fn main() -> () { }", "true", ); + let raw_schema = raw_schema.replace("Descriptor", "dora-rs specification"); // Get the Cargo root manifest directory let manifest_dir = env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR is not set");