Skip to content

VSCode language support for Cylc workflow configuration files

License

Notifications You must be signed in to change notification settings

cylc/vscode-cylc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a271b5f · Jan 16, 2025
Jan 16, 2025
Jul 24, 2024
Aug 5, 2024
Apr 24, 2020
Jan 15, 2025
Apr 29, 2020
Apr 21, 2020
May 1, 2020
Jan 15, 2025
Apr 9, 2020
Jul 24, 2024
Jan 15, 2025
Jul 15, 2024
May 14, 2021
Jan 15, 2025
Jan 15, 2025
Feb 12, 2020

Repository files navigation

vscode-cylc

A Visual Studio Code extension that provides language support for Cylc workflow configuration files.

Features

  • Syntax highlighting:
    • Cylc 7
    • Cylc 8
    • Jinja2 (can be used with a Jinja extension e.g. Better Jinja)
  • Snippets for Cylc 8 sections/settings

Screenshot

Screenshot of syntax highlighting

Installation

Either:

Issues

Please report any syntax highlighting issues at cylc/cylc-textmate-grammar. Any other issues with the extension should be reported here.

Contributing

Syntax highlighting

This repo includes the cylc/cylc-textmate-grammar repo as a git submodule in the /syntaxes/ directory. If you don't have experience with submodules, you should read the docs first.

The cylc-textmate-grammar repo contains a JSON TextMate grammar file which is used by VSCode for syntax highlighting. Read the VSCode syntax highlight guide for more information.

Important

Do not edit the JSON file when contributing; instead you should edit the JavaScript grammar file and build it, as explained in the contributing section of cylc-texmate-grammar.

To install a development version of this extension:

git clone --recurse-submodules https://github.com/cylc/vscode-cylc.git

The --recurse-submodules option automatically initialises the cylc-textmate-grammar repo in the /syntaxes directory.

Run/debug the development version in a new window by pressing F5.

You can then edit the /syntaxes/src/cylc.tmLanguage.js grammar file. First, read the contributing section of the cylc-textmate-grammar repo - any such edits will be part of that repo as opposed to this vscode-cylc repo. After editing & saving the file, there is a build shortcut task (in /.vscode/tasks.json) which can be triggered by Ctrl+Shift+B. This will run the cylc-textmate-grammar build script which compiles the JSON grammar file. Reload the debugging window using the button on the toolbar or Ctrl+Shift+F5

Note

Contributions to VSCode-specific features, e.g. bracket matching or snippets, are to be made in this repo, not the submodule.

Snippets

Snippets are simply generated from the Cylc 8 workflow configuration spec by running:

./bin/build_snippets.py

or using the VSCode build task (Ctrl+Shift+B).

The latest version of cylc-flow should be installed for this to work.