Doctestのスニペット

Emacsyanippetで使える定義しておくと便利なスニペットをメモしとく。

# -*- mode: snippet -*-
# name: doctest
# --
{-| ${1:func-name} Test
  >>> $0

-}

これを snippet_dir/haskell-mode/doctest に保存して C-c C-c で読み込んでおけば、テストを書くのがちょっと楽になる。

-- addTes.hs
add :: Int -> Int -> Int
add a b = a + b

-- doctest {trigger-key: タブキーとか}  or
-- yas-insert-snippetのキーバインドで挿入
{-| add Test
  >>> add 2 3
  5
-}

doctestを読み込むときは M-! doctest addTest.hs とやっていつも読み込んでる。頑張ればもっと楽な読み込み方がありそう。