Настраивал тут Guard по статье на Хабре
Вспомнил, что когда-то настраивал нотификацию, в которой вроде бы ничего сложного нет (у Emacs она работает, кажется, из коробки).
Недостаток такой нотификации в том, что если появилась ошибка, в Emacs только перекрашивается mode-line в красный цвет (если всё Ок, то зелёный), а на ошибку надо смотреть в терминал, где запущен Guard. Да и предварительно необходимо его там ещё запустить.
А что если запускать guard прямо в Emacs при начале работы с проектом?
Для запуска Guard из Emacs нашёл готовую библиотеку ruby-guard. и положил её в ~/emacs/ruby-guard/
Обычно при начале работы с проектом я сначала открываю корневой каталог проекта в dired. Значит, цепляемся к Dired! Добавим это в ~/.emacs:
(add-hook 'dired-mode-hook ;; При открытии каталога в Dired
(lambda ()
;; Если найден Guardfile, запускаем Guard:
(if (file-exists-p (concat default-directory "Guardfile"))
(progn
(load-library "~/emacs/ruby-guard/ruby-guard.elc")
(ruby-guard)))
;; подкрашивать строку в dired:
(hl-line-mode)))
Теперь при открытии каталога, содержащего Guard-файл, у нас будет появляться окно с выполняющимся Guard и, как только у нас будут появляться ошибки проверки, мы сможем переходить на точку ошибки в файле, если добавим в ~/.emacs строку:
(add-hook 'shell-mode-hook 'compilation-shell-minor-mode)
Теперь, когда в guard-буффере появляется ошибка, мы можем перейти в нужный файл на строку с ошибкой просто кликом мышки на ошибке или клавишей Enter.