github.com/Racer159/jackal@v0.32.7-0.20240401174413-0bd2339e4f2e/docs/3-create-a-jackal-package/8-vscode.md (about)

     1  # Getting Started - VS Code
     2  
     3  Jackal uses the [Jackal package schema](https://github.com/Racer159/jackal/blob/main/jackal.schema.json) to define its configuration files. This schema is used to describe package configuration options and enable the validation of configuration files prior to their use in building a Jackal Package.
     4  
     5  ## Adding Schema Validation
     6  
     7  1. Open VS Code.
     8  2. Install the [YAML extension](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) by RedHat.
     9  3. Open the VS Code command palette by typing `CTRL/CMD + SHIFT + P`.
    10  4. Type `Preferences: Open User Settings (JSON)`into the search bar to open the `settings.json` file.
    11  5. Add the below code to the settings.json config, or modify the existing `yaml.schemas` object to include the Jackal schema.
    12  
    13  ```json
    14    "yaml.schemas": {
    15      "https://raw.githubusercontent.com/Racer159/jackal/main/jackal.schema.json": "jackal.yaml"
    16    }
    17  ```
    18  
    19  :::note
    20  
    21  When successfully installed, the `yaml.schema` line will match the color of the other lines within the settings.
    22  
    23  :::
    24  
    25  ## Specifying Jackal's Schema Version
    26  
    27  To ensure consistent validation of the Jackal schema version in a `jackal.yaml` file, it can be beneficial to lock it to a specific version. This can be achieved by appending the following statement to the **first line** of any given `jackal.yaml` file:
    28  
    29  ```yaml
    30  # yaml-language-server: $schema=https://raw.githubusercontent.com/Racer159/jackal/<VERSION>/jackal.schema.json
    31  ```
    32  
    33  In the above example, `<VERSION>` should be replaced with the specific [Jackal release](https://github.com/Racer159/jackal/releases).
    34  
    35  ### Code Example
    36  
    37  ![yaml schema](https://user-images.githubusercontent.com/92826525/226490465-1e6a56f7-41c4-45bf-923b-5242fa4ab64e.png)