          ("\\.markdown\\'" . markdown-mode))
   :init (setq markdown-command "multimarkdown"))
 
-;; Setup flycheck syntax checking
-(use-package flycheck
-  :ensure t
-  :init (global-flycheck-mode)
-  :config
-  (add-hook 'after-init-hook 'global-flycheck-mode)
-  (setq-default flycheck-highlighting-mode 'lines)
-  ;; Define fringe indicator / warning levels
-    (define-fringe-bitmap 'flycheck-fringe-bitmap-ball
-      (vector #b00000000
-              #b00000000
-              #b00000000
-              #b00000000
-              #b00000000
-              #b00000000
-              #b00000000
-              #b00011100
-              #b00111110
-              #b00111110
-              #b00111110
-              #b00011100
-              #b00000000
-              #b00000000
-              #b00000000
-              #b00000000
-              #b00000000))
-    (flycheck-define-error-level 'error
-      :severity 2
-      :overlay-category 'flycheck-error-overlay
-      :fringe-bitmap 'flycheck-fringe-bitmap-ball
-      :fringe-face 'flycplHeck-fringe-error)
-    (flycheck-define-error-level 'warning
-      :severity 1
-      :overlay-category 'flycheck-warning-overlay
-      :fringe-bitmap 'flycheck-fringe-bitmap-ball
-      :fringe-face 'flycheck-fringe-warning)
-    (flycheck-define-error-level 'info
-      :severity 0
-      :overlay-category 'flycheck-info-overlay
-      :fringe-bitmap 'flycheck-fringe-bitmap-ball
-      :fringe-face 'flycheck-fringe-info))
-
-;; Setup Tabs for Window
-(use-package centaur-tabs
-  :ensure t
-  :demand
-  :config
-  (centaur-tabs-mode t)
-  (setq centaur-tabs-style "bar")
-  :bind
-  ("C-<prior>" . centaur-tabs-backward)
-  ("C-<next>" . centaur-tabs-forward))
-
-;; Org-mode Configuration
-(require 'org)
-(setq org-catch-invisible-edits 'error)
-(setq org-return-follows-link t)
-(setq org-src-preserve-indentation t)
-(setq org-src-fontify-natively t)
-(setq org-src-tab-acts-natively t)
-(setq org-ellipsis " ▼")
-(setq org-cycle-separator-lines 1)
-
-;; Don't ask for confirmation on eval buffers
-(setq org-confirm-babel-evaluate nil)
-
-;; Support org-capture
-(define-key global-map "\C-cc" 'org-capture)
-
-;; All org mode files live in $HOME/org
-(setq org-directory "~/org")
-(setq org-agenda-files '("~/org/"))
-
-(setq custom-file (concat user-emacs-directory "/custom.el"))
-;;; init.el ends here
+;; use and enable writegood-mode
+(use-package writegood-mode
+  :ensure t
+  :after markdown-mode org
+  :config
+  (add-hook 'markdown-mode-hook 'writegood-mode)
+  (add-hook 'org-mode-hook 'writegood-mode))
+
+(use-package yaml-mode
+  :ensure t
+  :mode (("\\.yml\\'" . yaml-mode)
+         ("\\.yaml\\'" . yaml-mode)))
+
+(use-package sql-indent
+  :ensure t)
+
+(use-package sql
+  :after sql-indent
+  :ensure t)
+
+;; keep init.el clean
+(setq custom-file (concat user-emacs-directory "custom.el"))
+(load custom-file 'noerror)

  :ensure t
  :bind (("M-x" . counsel-M-x)))

;; Remove Odd Undo Binding
(global-unset-key (kbd "C-/"))

;; enhanced version of isearch
(use-package swiper
  :ensure t
  :bind (("C-/" . counsel-grep-or-swiper)))

;; menu for ivy
(use-package ivy-hydra
  :ensure t)

;; ansible support
(use-package ansible
  :ensure t
  :init
  (add-hook 'yaml-mode-hook '(lambda () (ansible 1))))

;; terraform support
(use-package terraform-mode
  :ensure t)

(use-package company-terraform
  :ensure t
  :after terraform-mode company
  :init
  (company-terraform-init))

;; smart parens for better matching paren workflow
(use-package smartparens
  :ensure t
  :diminish smartparens-mode
  :config
  (progn
    (require 'smartparens-config)
    (smartparens-global-mode 1)
    (show-paren-mode t)))

(use-package expand-region
  :ensure t
  :bind ("M-m" . er/expand-region))

(use-package which-key
  :ensure t
  :diminish which-key-mode
  :config
  (which-key-mode +1)
  (add-hook 'after-init-hook 'which-key-mode))

(use-package elec-pair
  :config
  (electric-pair-mode t))

(use-package hl-line
  :config
  (global-hl-line-mode t))

(use-package magit
  :ensure t
  :bind (("C-x g" . magit-status)

  (setq web-mode-markup-indent-offset 2)
  (setq web-mode-code-indent-offset 2))

;; Setup markdown-mode for the best markdown experience
(use-package markdown-mode
  :ensure t
