   (package-install 'projectile)
   (package-install 'quelpa)
   (package-install 'sphinx-mode)
+  (package-install 'which-key)
   (package-install 'yaml-mode)
   (package-install 'yapfify)
   (quelpa '(evergreen :repo "chasinglogic/evergreen.el" :fetcher github))
   )
-
-;;; IDO
-(require 'ido)
-(setq ido-enable-flex-matching t)
-(setq ido-everywhere t)
-(setq ido-use-filename-at-point 'guess)
-(setq ido-ignore-extensions t)
-(ido-mode 1)
 
 ;;; Projectile
 (require 'projectile)
 (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)
 (projectile-mode +1)
 (setq projectile-enable-caching t)
+; Use Hybrid indexing using find and git
+(setq projectile-indexing-method 'hybrid)
 ; Switch directly into dired mode when switching projects rather than find file
 (setq projectile-switch-project-action #'projectile-dired)
 (add-hook 'projectile-idle-timer-hook #'my-projectile-idle-timer-function)
 
 ;;; cquery and lsp -- semantic parsing of C++ code. Find definitions and calls, etc
+;; I think lsp-ui was causing instability with Genny
 (require 'lsp-ui)
 (add-hook 'lsp-mode-hook 'lsp-ui-mode)
+(setq-default
+   lsp-ui-imenu-enable nil
+   lsp-ui-flycheck-enable t)
 (require 'lsp-mode)
 (require 'lsp-clients)
 (add-hook 'c++-mode-hook #'lsp)
 (add-hook 'python-mode-hook #'lsp)
 (add-hook 'java-mode-hook #'lsp)
-(require 'cquery)
-(setq cquery-executable "/usr/local/bin/cquery")
-(setq cquery-sem-highlight-method 'font-lock)
-;; alternatively, (setq cquery-sem-highlight-method 'overlay)
+(require 'ccls)
+(setq ccls-executable "/usr/local/bin/ccls")
+;; (require 'cquery)
+;; (setq cquery-executable "/usr/local/bin/cquery")
+;; (setq cquery-sem-highlight-method 'font-lock)
+(setq-default
+   lsp-prefer-flymake nil
+   lsp-auto-guess-root t)
+
+(require 'company)
+(setq-default
+ ;; Shorten the default delay to show completions
+ company-idle-delay 0.1
+ ;; Keep capitalization when completing
+ company-dabbrev-downcase nil)
+;; Enable completion everywhere
+(global-company-mode)
 
 (require 'company-lsp)
 (push 'company-lsp company-backends)
 
 ;; For rainbow semantic highlighting
-(cquery-use-default-rainbow-sem-highlight)
+;; (cquery-use-default-rainbow-sem-highlight)
 
 
 ;;; magit: Git porcelain

(add-hook 'yaml-mode-hook 'fci-mode)
(add-hook 'json-mode-hook 'fci-mode)
(add-hook 'markdown-mode-hook 'fci-mode)

;;; From Aaron Sawdey to prevent accidental closing
(defun ask-before-closing ()


;;;; Use case insensitive file completion
(setq-default completion-ignore-case t)

;;;; Keybindings
(global-set-key "\C-co" 'occur)
