                     nil
                     :foreground "gray50")
 
+(set-face-attribute 'helm-ff-executable
+                    nil
+                    :foreground "#228b22")
+
+(set-face-attribute 'helm-selection
+                    nil
+                    :background "#a5e8be")
+
+(set-face-attribute 'helm-visible-mark
+                    nil
+                    :background "#f1c40f")
+
+(set-face-attribute 'helm-source-header
+                    nil
+                    :height 0.9)
+
 (set-face-attribute 'font-lock-comment-face
                     nil
                     ;; :height 0.9


(setq python-shell-completion-native-enable nil)

(require 'ivy)
(ivy-mode 1)
(diminish 'ivy-mode)

(setq ivy-initial-inputs-alist nil   ;; no regexp by default
      ivy-re-builders-alist '((t . ivy--regex-ignore-order))   ;; allow input not in order
      ivy-use-virtual-buffers t   ;; add recentf-mode and bookmarks to ivy-switch-buffer
      ivy-height 15
      swiper-action-recenter t)

(require 'ivy-xref)
(setq xref-show-xrefs-function 'ivy-xref-show-xrefs)

;; (bind-key "M-i" 'helm-occur-from-isearch isearch-mode-map)

(require 'counsel)
(bind-keys ("M-x" . counsel-M-x)
           ("C-x C-f" . counsel-find-file)
           ("C-h a" . counsel-apropos)
           ("M-y" . counsel-yank-pop)
           ("C-c <SPC>" . counsel-mark-ring))

(bind-key "C-l" 'counsel-up-directory counsel-find-file-map)
(bind-key "M-i" '(lambda ()
                   (interactive)
                   (swiper (thing-at-point 'symbol t))))

(bind-key "M-G" '(lambda ()
                   (interactive)
                   (counsel-rg nil default-directory)))

(require 'projectile)
(setq projectile-enable-caching t)
(projectile-global-mode)
(setq projectile-completion-system 'ivy)
(diminish 'projectile-mode)
(add-to-list 'projectile-globally-ignored-files ".DS_Store")
(add-to-list 'projectile-globally-ignored-directories ".build")
(add-to-list 'projectile-globally-ignored-directories "build")
(add-to-list 'projectile-globally-ignored-directories ".cquery_cached_index")

(require 'counsel-projectile)
(counsel-projectile-mode)
(setq counsel-projectile-ag-initial-input '(projectile-symbol-or-selection-at-point))
(bind-key "M-g" 'counsel-projectile-rg)
(bind-key "C-x C-p" 'counsel-projectile)

(require 'helpful)
(bind-keys ("C-h f" . helpful-function)


(bind-keys :map c-mode-base-map
           ("<C-tab>" . company-complete)
           ("C-." . helm-imenu-in-all-buffers)
           ;; ("M-." . dumb-jump-go)
           ;; ("M-," . dumb-jump-back)
           ("M-o" . cff-find-other-file))

(bind-keys :map c++-mode-map
