yeet
This commit is contained in:
52
.config/emacs/modules/lang/haskell/config.el
Normal file
52
.config/emacs/modules/lang/haskell/config.el
Normal file
@@ -0,0 +1,52 @@
|
||||
;;; lang/haskell/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(after! projectile
|
||||
(add-to-list 'projectile-project-root-files "stack.yaml"))
|
||||
|
||||
|
||||
;;
|
||||
;;; Common packages
|
||||
|
||||
(after! haskell-mode
|
||||
(setq haskell-process-suggest-remove-import-lines t ; warnings for redundant imports etc
|
||||
haskell-process-auto-import-loaded-modules t
|
||||
haskell-process-show-overlays (not (featurep! :checkers syntax))) ; redundant with flycheck
|
||||
|
||||
(set-lookup-handlers! 'haskell-mode
|
||||
:definition #'haskell-mode-jump-to-def-or-tag)
|
||||
(set-file-template! 'haskell-mode
|
||||
:trigger #'haskell-auto-insert-module-template
|
||||
:project t)
|
||||
(set-repl-handler!
|
||||
'(haskell-mode haskell-cabal-mode literate-haskell-mode)
|
||||
#'+haskell/open-repl :persist t)
|
||||
;; Don't kill REPL popup on ESC/C-g
|
||||
(set-popup-rule! "^\\*haskell\\*" :quit nil)
|
||||
|
||||
(add-hook! 'haskell-mode-hook
|
||||
#'haskell-collapse-mode ; support folding haskell code blocks
|
||||
#'interactive-haskell-mode)
|
||||
|
||||
(add-to-list 'completion-ignored-extensions ".hi")
|
||||
|
||||
(map! :map haskell-mode-map
|
||||
:n "o" #'+haskell/evil-open-below
|
||||
:n "O" #'+haskell/evil-open-above
|
||||
(:when (featurep! :tools lookup)
|
||||
[remap haskell-mode-jump-to-def-or-tag] #'+lookup/definition))
|
||||
|
||||
(map! :localleader
|
||||
:map haskell-mode-map
|
||||
"b" #'haskell-process-cabal-build
|
||||
"c" #'haskell-cabal-visit-file
|
||||
"h" #'haskell-hide-toggle
|
||||
"H" #'haskell-hide-toggle-all))
|
||||
|
||||
|
||||
(use-package! lsp-haskell
|
||||
:when (featurep! +lsp)
|
||||
:after lsp-mode
|
||||
:preface (add-hook 'haskell-mode-local-vars-hook #'lsp!)
|
||||
:config
|
||||
;; Does some strange indentation if it pastes in the snippet
|
||||
(setq-hook! 'haskell-mode-hook yas-indent-line 'fixed))
|
||||
Reference in New Issue
Block a user