Auto Complete / IntelliSense

Applies To:

Pipeline Bundle

Configuration Scope:

VS Code Settings

Databricks Docs:

NA

Overview

The framework uses JSON Schema-based IntelliSense when creating or editing Data Flow specifications, which includes:

  • Auto-completion (suggesting keys/values)

  • Validation (checking for errors based on the schema)

  • Quick Fixes (where applicable)

The *_main.json mapping covers all Data Flow Spec types — standard, flow, materialized view, and nodespec. main.json inspects the data_flow_type / dataFlowType field and routes to the matching schema automatically, so a single mapping enables IntelliSense for every spec type. Nodespec specs are authored in snake_case and the schema validates them as written.

Autocomplete Example

Suggesting keys

IntelliSense Keys

Suggesting values

IntelliSense Values

Validation Example

Schema Validation

Validation Keys

Value Validation

Validation Values

Configuration for VS Code

To enable Auto Complete / IntelliSense in VS Code, you need to add the JSON schemas to your workspace or user settings.json file. Detailed instructions are available in the VS Code - JSON schema and Settings documentation.

To open the settings.json file, you can use the command palette (Ctrl+Shift+P or Cmd+Shift+P on Mac) and search for “JSON Schema”.

Open Settings (JSON)

Add the following code into your settings.json replacing <path to framework folder> with the path to the Lakeflow Framework project on your local machine unless you are adding this object directly to the settings.json in your .vscode directory in the Lakeflow Framework project in which case you should remove <path to framework folder>.:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 {
     "json.schemas": [
         {
             "fileMatch": [
                 "*_flow.json"
             ],
             "url": "<path to framework folder>/src/lakeflow_framework/schemas/flow_group.json"
         },
         {
             "fileMatch": [
                 "*_main.json"
             ],
             "url": "<path to framework folder>/src/lakeflow_framework/schemas/main.json"
         },
         {
             "fileMatch": [
                 "*_dqe.json"
             ],
             "url": "<path to framework folder>/src/lakeflow_framework/schemas/expectations.json"
         },
         {
             "fileMatch": [
                 "*_secrets.json"
             ],
             "url": "<path to framework folder>/src/lakeflow_framework/schemas/secrets.json"
         }
     ]
 }

Example settings.json file:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
    "python.analysis.extraPaths": [
        "src"
    ],
    "json.schemas": [
        {
            "fileMatch": [
                "*flow.json"
            ],
            "url": "/Users/erik.seefeld/Documents/dev_work/dlt_framework/src/lakeflow_framework/schemas/flow_group.json"
        },
        {
            "fileMatch": [
                "*main.json"
            ],
            "url": "/Users/erik.seefeld/Documents/dev_work/dlt_framework/src/lakeflow_framework/schemas/main.json"
        },
        {
            "fileMatch": [
                "*_dqe.json"
            ],
            "url": "/Users/erik.seefeld/Documents/dev_work/dlt_framework/src/lakeflow_framework/schemas/expectations.json"
        },
        {
            "fileMatch": [
                "*_secrets.json"
            ],
            "url": "/Users/erik.seefeld/Documents/dev_work/dlt_framework/src/lakeflow_framework/schemas/secrets.json"
        }
    ]
}