   :defer t
   :config
   (global-company-mode))
+
+
+;;================================================================================
+;;
+;; Semantic
+;;
+;;================================================================================
+(use-package semantic
+  :ensure t
+  :init
+  (use-package stickyfunc-enhance
+    :ensure t)
+  :config
+  (add-to-list 'semantic-default-submodes 'global-semantic-stickyfunc-mode)
+  (semantic-mode 1))
 
 
 ;;================================================================================

;;
;;================================================================================
(use-package cmake-mode
  :ensure t)


;;================================================================================

  ("C-M-l" . forloop)
  ("C-M-p" . printf-binding)
  :config

  (c-add-style "my-cpp-style"
	       '("stroustrup"
		 (c-offsets-alist
		  (innamespace . 0)
		  (inline-open . 0)
		  (arglist-close . 0))))

  (defun my-cpp-mode-hook ()
    (setq-default helm-make-build-dir "build")
    (add-to-list 'projectile-other-file-alist
		 '("C" "H" "hpp" "hxx"))
    (c-set-style "my-cpp-style"))

  (add-hook 'c++-mode-hook 'my-cpp-mode-hook)

  (defun printf-binding (out vars)
    "Binding for printf to make things easier.  OUT is the output string and VARS is the variables to printf."
    (interactive "MOutput:\nMVariables:")
