;; Time-stamp: <2019-02-02 18:55:41 (tslil@winslow)> ;; ----------------------------------------------------------------------------- ;; Haskell (use-package ghc :ensure t :defer t) (use-package company-ghc :ensure t :defer t) (use-package company-ghci :ensure t :defer t) (use-package shm :ensure t :functions structured-haskell-mode :bind (:map shm-map ("C-c C-s" . shm/case-split))) (use-package haskell-mode :ensure t :after (company-ghc company-ghci shm) :bind (:map haskell-mode-map ("[f8]". haskell-navigate-imports) ("C-c C-c" . haskell-compile) ("C-c C-z" . haskell-interactive-switch) ("C-c C-l" . haskell-process-load-file) ("C-c C-b" . haskell-interactive-switch) ("C-c C-t" . haskell-process-do-type) ("C-c C-i" . haskell-process-do-info) ("C-x C-d" . nil) ("C-c M-." . nil) ("C-c C-d" . nil)) :hook ((haskell-interactive-mode . visual-line-mode) (haskell-mode . (lambda () (subword-mode 1) (aggressive-indent-mode -1) (require 'shm) (require 'shm-case-split) (require 'ghc) (ghc-init) (structured-haskell-mode) ;; (haskell-indentation-mode) (interactive-haskell-mode) (turn-on-haskell-doc-mode) (turn-on-haskell-decl-scan) (add-to-list 'company-backends 'company-ghc) (add-to-list 'company-backends 'company-ghci) ;; (turn-on-haskell-unicode-input-method) ;; (haskell-mode-stylish-buffer) ))) :config (setq haskell-doc-show-global-types t haskell-doc-show-prelude t haskell-doc-show-user-defined t haskell-doc-show-reserved t haskell-interactive-mode-eval-pretty t haskell-process-type 'cabal-repl company-ghc-show-info t company-ghc-autoscan t company-ghc-show-module t haskell-stylish-on-save t haskell-process-use-presentation-mode t haskell-process-suggest-imports t haskell-process-suggest-hoogle-imports t haskell-process-show-debug-tips nil))