           (ac-fsharp-parse-file (car (last ac-fsharp-project-files))))
 
          ((string/starts-with msg "INFO: ")
-          (message msg))
+          (when ac-fsharp-verbose
+            (message msg)))
 
          ((string/starts-with msg "ERROR: ")
           (message msg)

  (interactive)
  (if (process-live-p ac-fsharp-completion-process)
      (log-psendstr ac-fsharp-completion-process "quit\n"))
  (setq ac-fsharp-completion-process nil))

;;;###autoload
(defun ac-fsharp-launch-completion-process ()
  "Launch the F# completion process in the background"
  (interactive)
  (message (format "Launching completion process: '%s'"
                   (mapconcat 'identity ac-fsharp-complete-command " ")))
  (setq ac-fsharp-completion-process
        (let ((process-connection-type nil))
          (apply 'start-process
                 "fsharp-complete"
                 "*fsharp-complete*"
                 ac-fsharp-complete-command)))

  (if (process-live-p ac-fsharp-completion-process)
      (progn
        (set-process-filter ac-fsharp-completion-process 'ac-fsharp-filter-output)
        (set-process-query-on-exit-flag ac-fsharp-completion-process nil)
        (setq ac-fsharp-status 'idle))
    (setq ac-fsharp-completion-process nil))

  (run-with-idle-timer
      ac-fsharp-idle-timeout
      t
      (lambda () (ac-fsharp-get-errors)))

  ;(add-hook 'before-save-hook 'ac-fsharp-reparse-buffer)
  ;(local-set-key (kbd ".") 'completion-at-point)

(defvar ac-fsharp-completion-data "")
(defvar ac-fsharp-completion-cache nil)
(defvar ac-fsharp-project-files nil)
(defvar ac-fsharp-idle-timer nil)
(defvar ac-fsharp-verbose nil)

(defconst eom "\n<<EOF>>\n"
  "End of message marker")
