Skip to content

Repository files navigation

CUE for Visual Studio Code

The official VS Code CUE extension provides rich language support for the CUE language through syntax highlighting and language server (LSP) integration.

What is CUE?

CUE makes it easy to validate data, write schemas, and ensure configurations align with policies.

CUE works with a wide range of tools and formats that you're already using such as Go, JSON, YAML, OpenAPI, and JSON Schema.

For more information and documentation, including tutorials and guides, see cuelang.org.

Quick Start

  1. Make sure you have CUE installed on the computer that's running VS Code. We recommend installing the latest version.

  2. Install the VS Code CUE extension.

  3. Open any CUE file to automatically activate the extension. The CUE status bar appears in the bottom right corner of the window and displays your CUE version. The ⚡ sign next to the CUE version indicates the language server is running, and you are ready to go.

  4. Use the Command Palette, Shift+Command+P (Mac) / Ctrl+Shift+P (Windows/Linux), to run CUE-specific commands. Find them through their common CUE: prefix.

For more details on configuring and using the CUE language server, see LSP: Getting started.

Configuration

The extension can be configured through VS Code settings. Access settings via:

  • CodePreferencesSettings (Mac)
  • FilePreferencesSettings (Windows/Linux)

CUE Binary Path

By default, the extension uses the cue command from your system PATH. You can customize this using the cue.cueCommand setting to point to a specific CUE installation.

Supported path formats:

  1. VS Code Variables (recommended for portability):

    {
      "cue.cueCommand": "${workspaceFolder}/bin/cue"
    }
    {
      "cue.cueCommand": "${workspaceFolder:my-folder}/bin/cue"
    }
    {
      "cue.cueCommand": "${userHome}/.local/bin/cue"
    }
  2. Absolute paths:

    {
      "cue.cueCommand": "/usr/local/bin/cue"
    }
  3. PATH-resolved commands (default):

    {
      "cue.cueCommand": "cue"
    }

Supported VS Code variables:

  • ${workspaceFolder} - The path of the first workspace folder
  • ${workspaceFolder:name} - The path of the workspace folder named name in a multi-root setup
  • ${userHome} - The user's home directory

Any other ${...} variable, or a variable that cannot be resolved (for example a workspace folder name that does not match), is reported as an error. Relative paths such as ./bin/cue are not supported; use a variable to construct an absolute path instead, e.g. ${workspaceFolder}/bin/cue.

Other Settings

  • cue.useLanguageServer - Enable/disable the CUE language server (default: true)
  • cue.languageServerFlags - Additional flags to pass to the language server (e.g., ["-rpc.trace"])
  • cue.enableEmbeddedFilesSupport - Enable CUE LSP for JSON and YAML files (default: true)

Feedback

We welcome feedback on your experience with the extension. Please file bug reports and share ideas via issues and discussions in the main CUE repository.

Credits

This project was started by betawaffle who graciously permitted that it be moved to be part of the CUE project.

Contributing

See Contributing.

About

CUE language support for Visual Studio Code

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages