Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@tm_tn

Emacs でも CWL を編集したい!

More than 3 years have 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! (英語版)

0
Help us understand the problem. What is going on with this article?
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
tm_tn
Emacs とか D とかで遊ぶのが趣味です.

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?