HaskellのリファクタリングツールHaReのインストールと使い方(Emacs,Meadow)

WindowsXPで実行.Haskell Platform 2.0である.

emacs(Meadow)をインストール

Meadow 2.10 (ASAGAO)をインストールした.
http://www.meadowy.org/meadow/wiki/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89 のnetinstallのsetup-ja.exeをダウンロードしてセットアップした.

HaReをダウンロード

http://www.cs.kent.ac.uk/projects/refactor-fp/hare.html
の最新版のsnapshotをダウンロード.
update 28/06/2010: An update of HaRe 0.6 (also known as HaRe 28/06/2010)をダウンロードした.

C:\tools\HaRe_28062010 に解凍した.

HaReをmake

makeする.しかしそのままだと止まる.対処方法としては,/HaRe_28062010/editors/localpathsの17行目を書き換える.

#cygpath -ua ${GHC_PATH} |sed -e 's/\r$//'`
cygpath -ua "${GHC_PATH}" |sed -e 's/\r$//'`

MeadowにHaReをロード

  1. リファクタリングしたいファイルをMeadowで開く.
  2. MeadowにHaReをロードする
    • M-x load-file でC:\tools\HaRe_28062010\editors\Emacs\haskell-refac.el をロード
  3. M-x haskell-refac-mode にする
  4. MeadowのメニューバーにRefactorが追加される.

リファクタリングする

ここではローカル変数をトップレベルにする.

  1. new Projectする
  2. Chase imports する
  3. where f x = .... の f らへんにカーソルを合わせて,Refactor->Names/Scopes->Lift def to toplevel を選択するとできる.
f x = g
  where g = x + 1

f x = (g x)
g x = x + 1

ちゃんと引数とかもやってくれる.