SBT-подобные функции в экосистеме сборки Haskell - PullRequest
4 голосов
/ 12 июня 2011

В последнее время я довольно часто использую Scala с SBT. У цикла REPL есть удобная функция: ~ COMMAND, означающая выполнение КОМАНДЫ для каждого изменения исходного файла в проекте. Например:

~ test

и

~ compile

ужасно полезны для быстрой разработки. Интересно, кто-нибудь знает что-то подобное для Хаскелла, может быть, кабалой?

Ответы [ 3 ]

9 голосов
/ 13 июня 2011

Вы можете получить что-то подобное очень легко, используя inotifywait.

Просто запустите терминал в каталоге вашего проекта и запустите что-то вроде этого:

$ while inotifywait -qq -r -e modify .; do cabal build && ./dist/build/tests/tests; done

Это также работает для любого другого языка; просто вставьте команды сборки по вашему выбору.

3 голосов
/ 05 октября 2014

Проект ghcid предоставляет что-то ограниченное ~ :reload.Он предоставляет несколько дополнительных функций (форматирование до фиксированного числа строк, сохранение предупреждений из ранее загруженных файлов), но не является общепринятым выполнением любой команды.

3 голосов
/ 12 июня 2011

Вы можете написать скрипт ghci для определения своих собственных команд и дополнения существующих команд.Для этого:

Дополнительная информация о командах GHCi :def: здесь .

...