                                       (s-split "\n" detailed-info t)))
            (items (or overloaded-functions (list menu-text)))
            candidates)
+      (when (eq major-mode 'objc-mode)
+        (setq insertion-text (s-chop-suffix ":" insertion-text)))
       (dolist (it (delete-dups items) candidates)
         (let* ((meta (if overloaded-functions it detailed-info))
                (params (company-ycmd--extract-params-clang it))

                   company-ycmd-insert-arguments
                   (get-text-property 0 'params candidate))
    (insert it)
    (company-template-c-like-templatify
     (concat candidate it))))

(defun company-ycmd--doc-buffer (candidate)
  "Return buffer with docstring for CANDIDATE if it is available."

(defun company-ycmd--get-construct-candidate-fn ()
  "Return function to construct candidate(s) for current `major-mode'."
  (pcase (car-safe (ycmd-major-mode-to-file-types major-mode))
    ((or "cpp" "c" "objc") 'company-ycmd--construct-candidate-clang)
    ("go" 'company-ycmd--construct-candidate-go)
    ("python" 'company-ycmd--construct-candidate-python)
    (_ 'company-ycmd--construct-candidate-generic)))
