Skip to content

Instantly share code, notes, and snippets.

@rossabaker
Created September 25, 2020 15:16
Show Gist options
  • Save rossabaker/b2cb2e97bffe3ac9428b6ac38dc472bd to your computer and use it in GitHub Desktop.
Save rossabaker/b2cb2e97bffe3ac9428b6ac38dc472bd to your computer and use it in GitHub Desktop.
(use-package direnv
:demand t
:config
(validate-setq direnv-always-show-summary nil)
(direnv-mode +1)
:general
(:prefix "C-c d e"
"" '(nil :wk "direnv")
"a" 'direnv-allow
"e" 'direnv-update-environment
"d" 'direnv-update-directory-environment))
(use-package lsp-mode
:after direnv
:preface
(setq lsp-keymap-prefix "C-c l")
;; Experimental workaround to https://github.com/wbolster/emacs-direnv/issues/17,
(advice-add 'lsp :before 'direnv-update-environment)
:hook
((lsp-mode . lsp-enable-which-key-integration)))
(use-package haskell-mode
:config
(validate-setq haskell-process-log t
haskell-process-show-debug-tips nil
haskell-process-suggest-remove-import-lines t
haskell-process-suggest-hoogle-imports t)
;; This one grinds everything to a halt.
(setq-default flycheck-disabled-checkers '(haskell-stack-ghc))
:hook
(haskell-mode . interactive-haskell-mode)
(haskell-mode . subword-mode)
(haskell-cabal-mode . subword-mode)
:general
(:keymaps 'haskell-mode-map
:prefix "C-c m"
"" '(nil :wk "haskell")
"h" 'hoogle
"t" 'haskell-session-change-target)
(:keymaps 'haskell-mode-map
:prefix "C-c m g"
"" '(nil :wk "go")
"i" 'haskell-navigate-imports
"I" 'haskell-navigate-imports-return)
(:keymaps 'haskell-mode-map
:prefix "C-c m r"
"" '(nil :wk "interactive")
"r" 'haskell-interactive-bring))
(use-package lsp-haskell
:config
(setq lsp-haskell-process-path-hie "haskell-language-server-wrapper")
:hook
(haskell-mode . lsp))
(use-package ormolu
:after crux
:config
(crux-with-region-or-buffer ormolu-format-region)
:general
(:keymaps 'haskell-mode-map
"C-c m f" 'ormolu-format-region))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment