CWL を編集する際に、キーワードの色分けなどがないとしょんぼりしますよね。
また、文法チェックくらいは自動でやって欲しいです。

この問題を何とかするため、Emacs で CWL を編集する cwl-mode を作成して公開しました

インストール方法

package.el 用に MELPA リポジトリを追加

cwl-mode は MELPA のリポジトリに収録されています。
package.el を使ってインストールできるように、以下のコードを init.el に追加します。

init.el
(require 'package)
(add-to-list 'package-archives
 '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)

cwl-mode のインストール

M-x package-install cwl-mode でインストールできます。

(オプション) Flycheck のインストール

Flycheck をインストールすることで、CWL の文法チェックを自動で行うことができます。
Flycheck も MELPA に収録されているため、M-x package-install flycheck でインストールできます。

文法チェックに必要なツールのインストール

Flycheck の CWL チェッカーでは、schema-salad-toolSALAD 形式で記述された CWL の文法定義ファイルを利用して文法チェックを行います。

schema-salad-toolPyPI に収録されているため、以下のコマンドでインストールできます。

$ pip install schema_salad

文法定義ファイルは CWL の Github リポジトリから持ってくる方法もありますが、今回は CWL のリファレンス実装である cwltool に付属しているものを利用します。

cwltool も PyPI に収録されているため、以下のコマンドでインストールできます。

$ pip install cwltool

CWL チェッカーの設定

以下のように flycheck-cwl-schema-path に、CWL の文法定義ファイルの CommonWorkflowLanguage.yml を指定します。
ファイルのパスは環境によって異なるため、各環境に合わせて変更してください。

init.el
(setq flycheck-cwl-schema-path "/Users/tom-tan/.pyenv/versions/3.6.2/lib/python3.6/site-packages/cwltool/schemas/v1.0/CommonWorkflowLanguage.yml")

できあがり!

.cwl の拡張子のファイルを開くと、自動で色分けしてくれるのがわかると思います。
また Flycheck をインストールした場合には、オンザフライに文法チェックをしてくれます。
これで CWL を書き放題ですね!

See also: Let's write CWL with Emacs! (英語版)

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.