 (use-package exec-path-from-shell
   :pin "melpa-stable"
   :commands (exec-path-from-shell-copy-envs))
+
+(use-package crux
+  :ensure t
+  :commands (crux-eval-and-replace
+             crux-smart-open-line-above
+             crux-kill-whole-line
+             crux-cleanup-buffer-or-region
+             crux-delete-buffer-and-file))
+
++
+;; * Text editing
+
+(use-package electric
+  :commands (electric-quote-mode))
+
+(use-package elec-pair
+  :commands (electric-pair-mode)
+  :config   (progn
+              (add-to-list 'electric-pair-pairs '(?“ . ?”))
+              (add-to-list 'electric-pair-text-pairs '(?“ . ?”))
+              (add-to-list 'electric-pair-pairs '(?„ . ?“))
+              (add-to-list 'electric-pair-text-pairs '(?„ . ?“))))
+
+(use-package flyspell
+  :commands (flyspell-mode turn-on-flyspell)
+  :config (progn
+            (unbind-key "C-M-i" flyspell-mode-map)
+            (unbind-key "C-c $" flyspell-mode-map)))
+
+(use-package key-chord
+  :commands (key-chord-mode)
+  :config (progn
+            (key-chord-define-global "``" "“")
+            (key-chord-define-global "''" "”")
+            (key-chord-define-global ",," "„")))
+
+(use-package multiple-cursors
+  :pin "melpa-stable"
+  :ensure t
+  :commands (mc/edit-lines
+             mc/mark-next-like-this
+             mc/mark-previous-like-this
+             mc/mark-all-like-this))
+
+(use-package synonyms
+  :commands (synonyms))
+
+(use-package undo-tree
+  :ensure t
+  :commands (global-undo-tree-mode
+             undo
+             undo-tree-redo)
+  :init (setq undo-tree-visualizer-timestamps t
+              undo-tree-visualizer-diff t)
+  :diminish undo-tree-mode)
+
+(use-package wgrep
+  :ensure t
+  :commands (wgrep-finish-edit
+             wgrep-change-to-wgrep-mode))
+
+(use-package yasnippet
+  :commands (yas-minor-mode-on yas-minor-mode yas-global-mode)
+  :diminish yas-minor-mode
+  :config (yas-reload-all))
 
  

              which-key-side-window-max-height 0.25)
  :config (which-key-setup-side-window-bottom))

(use-package yasnippet
  :commands (yas-minor-mode-on yas-minor-mode yas-global-mode)
  :diminish yas-minor-mode
  :config (yas-reload-all))


;; * Load customizations

                        (lambda ()
                          (eproject-mode -1))))))

(use-package eww
  :init (setq eww-bookmarks-directory
              (expand-file-name "private/" emacs-d)))

(use-package haskell-mode
  :config (progn
