EmacsのquickrunでHaskellを実行する時にシステムのghcではなくStackのghcを使ってもらう方法
syohex/emacs-quickrun: Run command quickly. This packages is inspired quickrun.vim
は初期設定では以下の通りrunghc
をそのまま実行してHaskellを実行します.
("haskell" . ((:command . "runghc")
(:description . "Run Haskell file with runghc(GHC)")))
私はStackを使ってHaskellコンパイラを入手して実行しているのでこれでは実行できません. またStackのglobalにインストールしたライブラリも使用できません.
もちろんalistを編集すれば簡単に切り替えは可能でしょうが, あまり連想リストを直接弄りたくはありません.
設定する関数が多分あるはずだと思って探しました.
quickrun-add-command
を使えば良いようです.
いや,
完全に追加ならこれで良いですが,
多分Haskell設定を上書きするのでquickrun--override-command
を使うのが正解でしょう.
(with-eval-after-load 'quickrun
(quickrun--override-command "haskell" '((:command . "stack runghc") (:description . "Run Haskell file with Stack runghc(GHC)"))))
で正解でした.
と思ったのですがソースコードではなくドキュメントを読んだら
quickrun-add-command
に:override t
をつけられるようです.
こちらの方が多分公開関数で行儀が良いでしょう.
(with-eval-after-load 'quickrun
(quickrun-add-command "haskell"
'((:command . "stack runghc")
(:description . "Run Haskell file with Stack runghc(GHC)"))
:override t))
で真の解決です.