          ("C-c C-f" . helm-projectile-find-file)
          ("C-x b" . my-helm-projectile-buffers-list)))
 
-(use-package helm-gtags
-  :defer t
-  :bind (("M-." . helm-gtags-find-tag)
-         ;;("M-r" . helm-gtags-find-rtag)
-         ("M-," . helm-gtags-pop-stack))
-  :init
-  (add-hook 'c-mode-common-hook 'helm-gtags-mode)
-  :config
-  (setq helm-gtags-auto-update t)
-  (setq helm-gtags-use-input-at-cursor t))
+(use-package smartscan
+  :init (add-hook 'prog-mode-hook 'smartscan-mode))
 
 (use-package eshell
   :defer t

  (setq helm-ag-insert-at-point 'symbol)
  (add-hook 'helm-ag-mode-hook (lambda () (grep-mode))))

;; TODO: semantic + projectile, ggtags + projectile

(use-package projectile
  :diminish projectile-mode
  :init (setq projectile-enable-caching t)
  :config (projectile-global-mode))

(use-package helm-descbinds
  :config (helm-descbinds-mode))

(use-package helm-swoop
  :config
  (define-key helm-swoop-map (kbd "C-r") 'helm-previous-line)
  (define-key helm-swoop-map (kbd "C-s") 'helm-next-line)
  :bind ("M-i" . helm-swoop))

(use-package helm-projectile
  :init

(define-key function-key-map "\e[." (kbd "C-."))

(define-key global-map (kbd "RET") 'newline-and-indent)
(global-set-key (kbd "M-r") 'recompile)
(global-set-key (kbd "M-o") 'other-window)
(global-set-key (kbd "C-c C-g") 'goto-line)
