(setq undo-tree-mode-lighter ""))
#+end_src
+* Editing
+
+** Company
+
+#+begin_src emacs-lisp
+(use-package company
+ :defer 5
+ :bind
+ (:map company-active-map
+ ([tab] . company-complete-common-or-cycle))
+ :custom
+ (company-idle-delay 0.3)
+ (company-minimum-prefix-length 1)
+ (company-selection-wrap-around t)
+ (company-dabbrev-char-regexp "\\sw\\|\\s_\\|[-_]")
+ :config
+ (global-company-mode t))
+#+end_src
+
* Syntax and spell checking
#+begin_src emacs-lisp
(use-package flycheck
flycheck-disabled-checkers '(haskell-stack-ghc haskell-ghc)))
#+end_src
+*** [[https://github.com/jyp/dante][dante]]
+
+#+begin_src emacs-lisp
+(use-package dante
+ :after haskell-mode
+ :commands dante-mode
+ :hook (haskell-mode . dante-mode))
+#+end_src
+
*** [[https://github.com/mpickering/hlint-refactor-mode][hlint-refactor]]
Emacs bindings for [[https://github.com/ndmitchell/hlint][hlint]]'s refactor option. This requires the refact
:bind (:map haskell-mode-map
("C-c l l" . hs-lint)))
#+end_src
+* Emacs Enhancements
+
+** [[https://github.com/justbur/emacs-which-key][which-key]]
+
+#+begin_quote
+Emacs package that displays available keybindings in popup
+#+end_quote
+
+#+begin_src emacs-lisp
+(use-package which-key
+ :defer 1
+ :config (which-key-mode))
+#+end_src
* Post initialization
:PROPERTIES: