 COL and LINE are expected to be as returned from ycmd, e.g. from
 notify-file-ready.
 "
-  (car (compute-motion (window-start)
-                       '(0 . 0)
-                       (point-max)
-                       (cons col (- line 1))
-                       (window-width)
-                       (cons (window-hscroll) 0)
-                       (selected-window))))
+  (save-excursion
+    (goto-line line)
+    (forward-char (- col 1))
+    (point)))
 
 (defconst ycmd--file-ready-faces
   '(("ERROR" . (error (underline t) bold))


;;; Code:

(require 'deferred)
(require 'hmac-def)
(require 'hmac-md5) ; provides encode-hex-string
(require 'json)
(require 'request)
(require 'request-deferred)

;; Public: Things users might need to use.

(defgroup ycmd nil
  "a ycmd emacs client"

       (_ . text)
       (_ . ranges))
      r
    (awhen (find-buffer-visiting filepath)
      (with-current-buffer it
        (let ((start-pos (ycmd--col-line-to-position
                          start-column-num
                          start-line-num))
              (end-pos (ycmd--col-line-to-position
                        end-column-num
                        end-line-num))
              (face (assoc-default kind ycmd--file-ready-faces)))
          (with-silent-modifications
            (set-text-properties
             start-pos end-pos `(font-lock-face ,face))))))))

(defun ycmd--decorate-with-parse-results (results)
  "Decorates a buffer using the results of a file-ready parse
list."
  (with-silent-modifications
    (set-text-properties (point-min) (point-max) nil))
  (mapcar 'ycmd--decorate-single-parse-result results)
  results)

(defun ycmd-notify-file-ready-to-parse ()
  (when (ycmd--major-mode-to-file-types major-mode)
