   :hook (python-mode . sphinx-doc-mode))
 
 (use-package flycheck
+  :ensure t
   :init (global-flycheck-mode)
+  ; Disable some checkers
+  ; disable jshint since we prefer eslint checking
   :config (setq-default flycheck-disabled-checkers
                         (append flycheck-disabled-checkers
                                 '(javascript-jshint)
                                 '(python-flake8)))
   (flycheck-add-mode 'javascript-eslint 'web-mode)
+  :hook
+  (c++-mode . (lambda () (setq flycheck-gcc-include-path
+                           (list (expand-file-name "/usr/local/include/bsoncxx/v_noabi")))))
 )
 
 (use-package flycheck-yamllint

  :commands flycheck-yamllint-setup
  :hook (flycheck-mode . flycheck-yamllint-setup))

;; disable jshint since we prefer eslint checking
;; use eslint with web-mode for jsx files
(add-hook 'c++-mode-hook
          (lambda () (setq flycheck-gcc-include-path
                           (list (expand-file-name "/usr/local/include/bsoncxx/v_noabi")))))
;; (eval-after-load 'flycheck
;;   '(progn
;;      (require 'flycheck-google-cpplint)
;;      ;; Add Google C++ Style checker.
;;      ;; In default, syntax checked by Clang and Cppcheck.
;;     (flycheck-add-next-checker 'c/c++-cppcheck
;;                                 '(warning . c/c++-googlelint))))
(use-package flycheck-color-mode-line
  :after flycheck
  :hook (flycheck-mode . flycheck-color-mode-line-mode)

  (setq ccls-executable "/usr/local/bin/ccls")
  :hook ((c-mode c++-mode objc-mode) .
         (lambda () (require 'ccls) (lsp))))

;;;; ELPY Python support -- not LSP based
;; (use-package elpy
