Skip to content
This repository has been archived by the owner on Sep 6, 2024. It is now read-only.
/ language-cylc Public archive

Atom language package for Cylc workflow configuration files

License

Notifications You must be signed in to change notification settings

cylc/language-cylc

Repository files navigation

Cylc language package for Atom

An Atom extension that provides language support for Cylc workflow configuration files.

Features

Syntax highlighting:

  • Cylc 7
  • Cylc 8
  • ISO 8601 datetimes
  • Jinja2 (can be used with a Jinja extension e.g. atom-jinja2)

Check here for info on supported syntax features.

Installation

Install from the Atom settings, the Atom website, or by running apm install language-cylc.

By default, only files called suite.rc and suite.rc.processed (and with the future Cylc 8 extension .cylc) will use the package. If you want all .rc files to use it: in Atom, go to Edit > Config... and add the desired extension to your Atom config file under core.customFileTypes.source.cylc, like this:

"*":
  core:
    customFileTypes:
      "source.cylc": [
        "rc"
      ]

Issues

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

Contributing

This repo includes the cylc/cylc-textmate-grammar repo as a git submodule. 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 Atom for syntax highlighting (symlinked to by grammars/cylc.json). Read the Atom guide on creating a TextMate grammar for more information. Note: 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. Any edits will be part of that repo as opposed to this repo.

To install a development copy of the package:

git clone --recurse-submodules https://github.com/cylc/language-cylc.git
cd language-cylc
apm link --dev

The --recurse-submodules option automatically initialises the cylc-textmate-grammar submodule. apm link --dev symlinks the clone to ~/.atom/dev/ so that it is loaded when you run Atom in dev mode:

atom --dev .

You can then edit the cylc-textmate-grammar/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. Remember to run npm build inside cylc-texmate-grammar after editing & saving the file. Reload the dev window using Ctrl+Shift+F5.

Contributions to Atom-specific features are to be made in this repo, not the submodule.