Life is TraversableOnce

programming / Java / Scala / Rust

古生物とのたたかい

最近AmmoniteのREPLライブラリをWindowsから使えないものかと取っ組み合っているので備忘のためにメモを残します。

依存性

試行した環境はこの通りです。

scalaVersion := "2.11.8"

libraryDependencies ++= Seq(
  "org.scalaj"  %% "scalaj-http"    % "2.3.0",
  "com.github.scopt" %% "scopt"     % "3.4.0",
  "com.lihaoyi" %% "upickle"        % "0.4.1",
  "com.lihaoyi" %% "ammonite-ops"   % "0.6.2",
  "com.lihaoyi" %% "ammonite-repl"  % "0.6.2" cross CrossVersion.full
)

課題

GithubIssueにも挙げられているようですが、Ammonite REPLはWindowsに対応していません。

起動できない

起動時の初期設定を行うpredef.scalaからターミナル操作クラスを変更して対応します。

repl.frontEnd() = ammonite.repl.frontend.FrontEnd.JLineWindows

スクリプトが読み込めない

load.moduleでファイルを読み取るとき、改行コードはLFを徹底しておかないと、シンタックスエラーになります。

解決できていないもの

  1. 例外を出力しようとしたとき、fansi.StrからNullPointerException
  2. プロンプトの色が固定できない
  3. grep!のハイライトが行全体に効いてしまう
  4. SIGINT(Ctrl + C)でスレッドが止められない
  5. stat!で取得できるファイルの属性は、Posix前提なので一部欠落する

とりあえず動かしているだけで楽しいですが、対応できるものが増えるといいですね〜。