   "Return the lighter for merlin which indicates the status of merlin process."
   (if (merlin-process-dead-p) " merlin (DEAD)"
     (progn
-      (merlin--acquire-buffer)
       (let* ((messages nil)
              (project (merlin--project-get-cached)))
         (when merlin-report-errors-in-lighter

.merlins file loaded and a list of error messages, if any error occured during
loading"
  (if (merlin--process-busy) (cons nil nil)
    (let* ((r (merlin-send-command '(project get)))
           (failed (cdr (assoc 'failures r)))
           (result (cdr (assoc 'result r)))
           (ret (cons result failed)))
      (setq merlin--project-cache (cons (float-time) ret))
      ret)))

(defun merlin--project-get-cached ()
  "Like `merlin--project-get' but use a cache to prevent to limit number of
calls (lighter can be updated at a high frequency)"
  (if (and merlin--project-cache
           (< (abs (- (float-time) (car merlin--project-cache))) 4.))
      (cdr merlin--project-cache)
    (merlin--project-get)))

(defun merlin-goto-project-file ()
  "Goto the merlin file corresponding to the current file."

(make-variable-buffer-local 'merlin-process-queue)

(defvar merlin--process-busy nil
  "Non-nil if process is busy treating a synchronous operation (only valid in a process buffer).")
(make-variable-buffer-local 'merlin--process-busy)

(defvar merlin-process-data nil
