CWL を編集する際に、キーワードの色分けなどがないとしょんぼりしますよね。
また、文法チェックくらいは自動でやって欲しいです。
この問題を何とかするため、Emacs で CWL を編集する cwl-mode を作成して公開しました。
インストール方法
package.el 用に MELPA リポジトリを追加
cwl-mode は MELPA のリポジトリに収録されています。
package.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-tool
と SALAD 形式で記述された CWL の文法定義ファイルを利用して文法チェックを行います。
schema-salad-tool
は PyPI に収録されているため、以下のコマンドでインストールできます。
$ pip install schema_salad
文法定義ファイルは CWL の Github リポジトリから持ってくる方法もありますが、今回は CWL のリファレンス実装である cwltool
に付属しているものを利用します。
cwltool
も PyPI に収録されているため、以下のコマンドでインストールできます。
$ pip install cwltool
CWL チェッカーの設定
以下のように flycheck-cwl-schema-path
に、CWL の文法定義ファイルの CommonWorkflowLanguage.yml
を指定します。
ファイルのパスは環境によって異なるため、各環境に合わせて変更してください。
(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! (英語版)