   (projectile-mode +1)
   (setq projectile-project-search-path '("~/coding/ntraum")))
 
-(use-package gruvbox-theme
-  :ensure t)
+(use-package gruvbox-theme :ensure t)
 
 ;; Startup dashboard
 (use-package dashboard

  :ensure t
  :init (push 'company-lsp company-backends))

(use-package lsp-ui
  :ensure
  )

(use-package yasnippet
  :ensure t
  :after company
  :init (yas-global-mode))

(use-package yasnippet
  :after yasnippet)

;; Add yasnippet support for all company backends
;; https://github.com/syl20bnr/spacemacs/pull/179
(defvar company-mode/enable-yas t
  "Enable yasnippet for all backends.")

(defun company-mode/backend-with-yas (backend)
  (if (or (not company-mode/enable-yas) (and (listp backend) (member 'company-yasnippet backend)))
      backend
    (append (if (consp backend) backend (list backend))
            '(:with company-yasnippet))))

(setq company-backends (mapcar #'company-mode/backend-with-yas company-backends))

(use-package general :ensure t
  :config
  (general-evil-setup t)
  (general-define-key
   :states '(normal)
   :prefix "SPC"
   "SPC" '(helm-M-x :which-key "execute command")
   "TAB" '(other-window :which-key "other window")
   "b"  '(:ignore t :which-key "buffers")
   "bb" '(helm-buffers-list t :which-key "helm-buffers-list")

   "d"  '(:ignore t :which-key "describe")
   "df" '(describe-function :which "function")
   "dv" '(describe-variable :which "variable")
   "dk" '(describe-key :which "key")

   "e"  '(:ignore t :which-key "emacs")
   "ee" '((lambda () (interactive)(find-file "~/.emacs")) :which-key "open .emacs")
   "er" '((lambda () (interactive)(load-file "~/.emacs")) :which-key "reload .emacs")

   "f"  '(:ignore t :which-key "files")
   "ff" '(helm-find-files :which-key "find files")
   "fg" '(helm-rg :which-key "grep files")
   "fr" '(helm-recentf :which-key "recent files")

   "g"  '(:ignore t :which-key "git")
   "gs" '(magit-status :which-key "git status")
   "gb" '(magit-branch :which-key "git branch")

   "l"  '(:ignore t :which-key "lsp")
   "ld" '(lsp-describe-thing-at-point :which-key "describe thing")
   "ll" '(lsp-find-definition :which-key "find implementation")

   "p"  '(:ignore t :which-key "projectile")
   "pf" '(helm-projectile-find-file :which-key "projects find file")
   "pp" '(helm-projectile-switch-project :which-key "projects")
   "pr" '(helm-projectile-rg :which-key "projects grep")

   "r"  '(:ignore t :which-key "ruby")
   "rc" '(inf-ruby-console-auto :which-key "ruby console")
   "rd" '(robe-doc :which-key "robe doc")
   "rj" '(robe-jump :which-key "robe jump")

   "s"  '(split-window-vertically :which-key "split vertically")
   "v"  '(split-window-horizontally :which-key "split horizontally")

   "w"  '(:ignore t :which-key "window")
   "wh" '(windmove-left :which-key "move left")
   "wj" '(windmove-down :which-key "move down")
   "wk" '(windmove-up :which-key "move up")
   "wl" '(windmove-right :which-key "move right")
   )
  (general-define-key
   :states '(normal)
   "ü" '(lsp-goto-implementation :which-key "lsp goto impl")
   "Ü" '(previous-buffer :which-key "previous buffer")
  )
)

;; Disable menu and tool bar
(menu-bar-mode -1)
(tool-bar-mode -1)

;; Disable scroll bar
(scroll-bar-mode -1)
;; Show matching parentheses
(show-paren-mode 1)


  :ensure t
  )

(use-package helm-projectile :ensure t)

;; Haml template syntax
(use-package haml-mode :ensure t)

;; Slim template syntax
(use-package slim-mode :ensure t)

;; Crystal language support
(use-package crystal-mode :ensure t)

;; Auto completion framework
(use-package company
