 (cl-defun ycmd--request (location
                          content
                          &key
-                         (parser 'buffer-string)
                          (type "POST")
                          (params nil)
                          (sync nil)

timeout specified by `ycmd-delete-process-delay', then kill the
process with `delete-process'."
  (let ((start-time (float-time)))
    (ycmd--request
     "/shutdown" nil
     :parser 'json-read :sync t :timeout 0.1)
    (while (and (ycmd-running?)
                (> ycmd-delete-process-delay
                   (- (float-time) start-time)))

    (deferred:$
      ;; try
      (deferred:$
        (ycmd--request "/event_notification" content)
        (deferred:nextc it handler))
      (deferred:error it
        (lambda (err)
