Help us understand the problem. What is going on with this article?

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

tm_tn
Emacs とか D とかで遊ぶのが趣味です.
https://tom-tan.hatenablog.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした