ClojureScript

Atom

Atomパッケージのインストール方法

Atomの設定は、Command + , (コマンド + カンマ) または Windows では Control + , (コントロール + カンマ) を押すと表示されます。そこから、「インストール」タブに移動し、インストールしたいパッケージの名前を検索できます。コマンドラインを使用する場合は、apm を使用してパッケージをインストールすることもできます。

$ apm install [package-name]

Parinfer

JavaやJavaScriptとは異なり、ClojureScriptでは、改行ではなく同じ行に閉じ括弧を配置することが慣例です。これを管理するために、Shaun LeBronのParinferを使用すると、コードのインデントに基づいて閉じ括弧を自動的にバランスさせることができます。Chris OakmanのAtom用Parinferパッケージはこちらにあります:https://atom.io/packages/parinfer

改行の自動インデントの改善

Atomは、デフォルトではLisp方言の改行を正しく自動インデントしません。これは、Jon Spaldingのlisp-paredit Atomパッケージをインストールすることで解決できます。既にParinferを使用していて、改行のインデントにのみlisp-pareditパッケージを使用したい場合は、lisp-pareditの設定を以下のように変更できます。

  • 有効:チェック済み

  • 厳格:チェックなし

  • キーバインディング有効:チェックなし

…そして、以下のキーバインディングを使用してkeymap.csonファイルを更新します。

# Provides proper indentation when enter is pressed
'atom-text-editor[data-grammar~="clojure"]':
  'enter': 'lisp-paredit:newline'

# Override newline back to original when in Proto-REPL console
# GitHub Issue: https://github.com/jonspalding/lisp-paredit/issues/26
'ink-console atom-text-editor[data-grammar~="clojure"]':
  'enter': 'editor:newline'
keymap.csonファイルは、メインメニューの「Atom > Keymap…」にあります。

Joker Linter

Roman BataevのJokerリンターを使用すると、コードのエラーを検出できます。Ryan De La TorreのAtom用Jokerパッケージはこちらにあります:https://atom.io/packages/linter-joker

これを使用するには、マシンにもJokerをインストールする必要があります。こちらからダウンロードするか、Homebrewを使用してインストールできます。

brew install candid82/brew/joker

Proto REPL

Jason GilmanのProto REPLを使用すると、エディターからClojureScriptコードを評価できます。

Figwheelを使用したProto REPLの設定

LeiningenとFigwheelを使用している場合、Proto REPLをアプリケーションに接続する最も簡単な方法は、Proto REPL内からFigwheelを起動することです。これを行うには、まずproject.cljのdev依存関係にfigwheel-sidecarpiggiebackproto-replをマージします。

:profiles {:dev {:dependencies [[figwheel-sidecar "0.5.9"]
                                [com.cemerick/piggieback "0.2.1"]
                                [proto-repl "0.3.1"]]

次に、project.cljにClojureScript用のpiggiebackのnREPLミドルウェアを追加します。

:repl-options {:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}

次に、Proto REPLを開きます。これを行うには、Command + Shift + P (またはWindowsではControl + Shift + P)を押してコマンドパレットを表示し、コマンドパレットを使用してProto REPL: Toggleコマンドを検索します。

Proto REPLを起動した後、「REPLを[プロジェクトへのパス]でleinを使用して起動中」というメッセージがREPL指示の下部に表示されます。すべて正常に動作していれば、Figwheelを起動し、ClojureScript REPLを起動するために、Proto REPLで次のコマンドを実行できます。

(do (use 'figwheel-sidecar.repl-api) (start-figwheel!) (cljs-repl))

ローカルでホストされているWebページをブラウザで開き、(js/alert "Hello from Proto REPL!")などのテストコードをProto REPLに入力して、すべてが正常に動作していることを確認します。(上記のコマンドを実行すると、ブラウザにアラートが表示されます。)

Proto REPLへのコマンドの保存

毎回Figwheelを起動するコマンドを入力したくない場合は、カスタムコマンドをAtomのinit.js/init.coffeeファイルに保存できます。

atom.commands.add('atom-text-editor', 'Start Figwheel with CLJS REPL', function () {
  protoRepl.executeCode(`
    (when
      (try
        (require 'figwheel-sidecar.repl-api)
        (resolve 'figwheel-sidecar.repl-api/start-figwheel!)
        (catch Throwable _))
      (eval '(do (figwheel-sidecar.repl-api/start-figwheel!)
                 (figwheel-sidecar.repl-api/cljs-repl))))
  `);
});

Proto REPLの拡張に関する詳細なドキュメントはこちらにあります:https://github.com/jasongilman/proto-repl/blob/master/extending_proto_repl.md