blob: bc1302e3852592f6bb6ef749bce2dfebc0ad5998 [file] [log] [blame]
;;; package --- Summary
;;; Commentary:
(require 'ido)
(require 'json)
(defun haskell-src-query-build-targets ()
(let ((message-log-max nil)
(buffer (current-buffer))
(cabal-file (haskell-cabal-find-file)))
(with-temp-buffer
(let ((temp-buffer (current-buffer)))
(with-current-buffer buffer
(condition-case e
(call-process shm-program-name
nil
temp-buffer
nil
"targets"
"Emacs"
(format "--cabal-file=%s" cabal-file))
((file-error)
(error "cannot find haskell-src-query executable")))))
(json-read-from-string (buffer-string)))))
(defun haskell-session-select-build-target()
(interactive)
(haskell-session-set-target (haskell-session)
(ido-completing-read "Build Target:"
(append (haskell-src-query-build-targets) nil))))
(provide 'hsq-cabal)