     :defer t
     :ensure t)
 
+  (use-package helm-make :ensure t
+    :defer t)
+
+  (use-package helm-company :ensure t
+    :defer t)
+
+  ;; Best way (so far) to search for files in repo.
+  (use-package helm-projectile :ensure t
+    :bind ("C-x f" . helm-projectile))
+
+  (use-package helm-gtags
+    :defer t
+    :ensure t
+    :config
+    (helm-gtags-mode +1))
+
+  (use-package helm-dash :ensure t
+    :commands (helm-dash)
+    :config
+    ;; View documentation in external browser.
+    ;; (validate-setq helm-dash-browser-func #'browse-url)
+    ;; View documentation in ewww.
+    (validate-setq helm-dash-browser-func #'eww))
+
+  (use-package helm-pydoc :ensure t
+    :commands (helm-pydoc))
+
+  (use-package helm-describe-modes :ensure t
+    :commands (helm-describe-modes))
+
+  (use-package helm-tramp :ensure t
+    :commands (helm-tramp))
+
+  (use-package helm-descbinds :ensure
+    :bind (("C-h b" . helm-descbinds)
+           ("C-h w" . helm-descbinds)))
+
+  (use-package helm-xcdoc :ensure t
+    :defer t)
+
   :bind (("C-x C-f" . helm-find-files)
          ("C-c i" . helm-semantic-or-imenu)
          ("M-x" . helm-M-x)

                                                   user-emacs-directory))
  (save-place-mode))

(use-package helm-dash :ensure t
  :commands (helm-dash)
  :config
  ;; View documentation in external browser.
  ;; (validate-setq helm-dash-browser-func #'browse-url)
  ;; View documentation in ewww.
  (validate-setq helm-dash-browser-func #'eww))

(defun ar/projectile-helm-ag ()
  "Search current repo/project using ag."
  (interactive)

  (validate-setq helm-candidate-number-limit 200)

  (use-package helm-net
    :defer t
    :config
    (validate-setq helm-net-prefer-curl t))

  (use-package helm-imenu
    :defer t
    :config
    (use-package imenu
      :config
