Skip to content

Fix hoogle lookup from local servers #834

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Sep 16, 2015
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 16 additions & 13 deletions haskell-mode.el
Original file line number Diff line number Diff line change
Expand Up @@ -859,27 +859,32 @@ is asked to show extra info for the items matching QUERY.."
(defvar hoogle-server-process-name "emacs-local-hoogle")
(defvar hoogle-server-buffer-name (format "*%s*" hoogle-server-process-name))
(defvar hoogle-port-number 49513 "Port number.")
(defvar hoogle-server-process nil "The process handle of the local hoogle server.")

(defun hoogle-start-server ()
"Start hoogle local server."
(interactive)
(unless (hoogle-server-live-p)
(start-process
hoogle-server-process-name
(get-buffer-create hoogle-server-buffer-name) "/bin/sh" "-c"
(format "hoogle server -p %i" hoogle-port-number))))
(if (executable-find "hoogle")
(unless (hoogle-server-live-p)
(set 'hoogle-server-process
(start-process
hoogle-server-process-name
(get-buffer-create hoogle-server-buffer-name)
"hoogle" "server" "-p" (number-to-string hoogle-port-number))))
(error "hoogle executable not found")))

(defun hoogle-server-live-p ()
"Whether hoogle server is live or not."
"Whether the hoogle server process is live."
(condition-case _err
(process-live-p (get-buffer-create hoogle-server-buffer-name))
(process-live-p hoogle-server-process)
(error nil)))

(defun hoogle-kill-server ()
"Kill hoogle server if it is live."
"Kill the hoogle server if it is live."
(interactive)
(when (hoogle-server-live-p)
(kill-process (get-buffer-create hoogle-server-buffer-name))))
(kill-process (get-buffer-create hoogle-server-buffer-name))
(set 'hoogle-server-process nil)))

;;;###autoload
(defun hoogle-lookup-from-local ()
Expand All @@ -890,10 +895,8 @@ is asked to show extra info for the items matching QUERY.."
hoogle-port-number
(read-string "hoogle: " (haskell-ident-at-point))))
(when (y-or-n-p
"hoogle server not found, start hoogle server?")
(if (executable-find "hoogle")
(hoogle-start-server)
(error "hoogle is not installed")))))
"hoogle server not running, start hoogle server?")
(hoogle-start-server))))

;;;###autoload
(defcustom haskell-hayoo-url "http://hayoo.fh-wedel.de/?query=%s"
Expand Down