                                       (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))

  :group 'company-ycmd)

(defconst company-ycmd--extended-features-modes
  '(c++-mode c-mode go-mode)
  "Major modes which have extended features in `company-ycmd'.")

(defun company-ycmd--extended-features-p ()

                   company-ycmd-insert-arguments
                   (get-text-property 0 'params candidate))
    (insert it)
    (if (string-match "\\`:[^:]" it)
        ;; The function `company-clang-objc-templatify' has been renamed to
        ;; `company-template-objc-templatify' in company-mode commit
        ;; 6bf24912a8a3c2cfc5e72073b8eb0f1137ab7728. Remove check once a new
        ;; stable version is released.
        (if (fboundp 'company-template-objc-templatify)
            (company-template-objc-templatify it)
          (company-clang-objc-templatify 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."
