Edited at
CWLDay 9

Emacs でも CWL を編集したい!

More than 1 year has passed since last update.

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! (英語版)