summaryrefslogtreecommitdiffhomepage
path: root/init.org
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2021-05-02 05:08:46 +0100
committerjao <jao@gnu.org>2021-05-02 05:08:46 +0100
commitd34e74e2bbfb24b1406169874e97c7f34c0b744e (patch)
treed2ecd6c889bb32f0289cc7a7458409d6b2f92f1b /init.org
parentf1ea32927579bc9a1ee21bfd368cfcf99c44d58e (diff)
downloadelibs-d34e74e2bbfb24b1406169874e97c7f34c0b744e.tar.gz
elibs-d34e74e2bbfb24b1406169874e97c7f34c0b744e.tar.bz2
haskell tweaks
Diffstat (limited to 'init.org')
-rw-r--r--init.org106
1 files changed, 63 insertions, 43 deletions
diff --git a/init.org b/init.org
index 7ff1217..98d9484 100644
--- a/init.org
+++ b/init.org
@@ -2520,50 +2520,70 @@
:ensure t)
#+end_src
*** Haskell
- #+begin_src emacs-lisp
- (use-package haskell-mode
- :ensure t
- :custom
- ((inferior-haskell-find-project-root t)
- (haskell-check-remember-last-command-p nil)
- (haskell-font-lock-symbols nil)
- (haskell-interactive-popup-errors nil)
- (haskell-process-auto-import-loaded-modules t)
- (haskell-process-log t)
- (haskell-process-suggest-remove-import-lines t)
- (haskell-process-suggest-hoogle-imports t)
- (haskell-process-type 'cabal-repl)
- (haskell-process-use-presentation-mode t))
+***** packages
+ #+begin_src emacs-lisp
+ (use-package haskell-mode
+ :ensure t
+ :custom
+ ((inferior-haskell-find-project-root t)
+ (haskell-check-remember-last-command-p nil)
+ (haskell-font-lock-symbols nil)
+ (haskell-interactive-popup-errors nil)
+ (haskell-process-auto-import-loaded-modules t)
+ (haskell-process-log t)
+ (haskell-process-suggest-remove-import-lines t)
+ (haskell-process-suggest-hoogle-imports t)
+ (haskell-process-type 'cabal-repl)
+ (haskell-process-use-presentation-mode t)
+ (haskell-stylish-on-save nil))
- :config
- (require 'haskell-process)
- (require 'haskell-hoogle)
-
- (defun jao-haskell-hoogle (query)
- (interactive (hoogle-prompt))
- (haskell-hoogle query t))
-
- :hook ((haskell-mode . interactive-haskell-mode)
- (haskell-mode . haskell-doc-mode)
- (haskell-mode . haskell-indentation-mode)
- (haskell-mode . haskell-auto-insert-module-template))
-
- :bind (:map haskell-mode-map
- (("C-c C-d" . jao-haskell-hoogle)
- ("C-c h" . haskell-hoogle-lookup-from-local)))
- :diminish ((interactive-haskell-mode . " λ")
- (haskell-doc-mode . "")))
-
- ;; needs cabal install apply-refact
- (use-package hlint-refactor
- :ensure t
- :after (haskell-mode)
- :diminish ""
- ;; :bind (:map flycheck-command-map
- ;; ("r" . hlint-refactor-refactor-at-point)
- ;; ("R" . hlint-refactor-refactor-buffer))
- :hook (haskell-mode . hlint-refactor-mode))
- #+end_src
+ :config
+ (require 'haskell-process)
+ (require 'haskell-hoogle)
+
+ (defun jao-haskell-hoogle (query)
+ (interactive (hoogle-prompt))
+ (haskell-hoogle query t))
+
+ :hook ((haskell-mode . interactive-haskell-mode)
+ (haskell-mode . haskell-doc-mode)
+ (haskell-mode . haskell-decl-scan-mode)
+ (haskell-mode . haskell-indentation-mode)
+ (haskell-mode . haskell-auto-insert-module-template))
+
+ :bind (:map haskell-mode-map
+ (("C-c C-d" . jao-haskell-hoogle)
+ ("C-c h" . haskell-hoogle-lookup-from-local)
+ ("C-c C-c" . haskell-compile)))
+ :diminish ((interactive-haskell-mode . " λ")
+ (haskell-doc-mode . "")
+ (haskell-decl-scan-mode . "")))
+
+ (require 'haskell)
+ (jao-define-attached-buffer "\\*hoogle\\*.*")
+
+ ;; needs cabal install apply-refact
+ (use-package hlint-refactor
+ :ensure t
+ :after (haskell-mode)
+ :diminish ""
+ :hook (haskell-mode . hlint-refactor-mode))
+ #+end_src
+***** hydra
+ #+begin_src emacs-lisp
+ (major-mode-hydra-define haskell-mode nil
+ ("Imports"
+ (("in" haskell-navigate-imports "Navigate imports")
+ ("if" haskell-mode-format-imports "Format imports")
+ ("is" haskell-sort-imports "Sort imports")
+ ("ia" haskell-align-imports "Align imports"))
+ "Code"
+ (("c" haskell-compile "Compile")
+ ("s" haskell-mode-stylish-buffer "stylish on buffer"))
+ "Hoogle"
+ (("h" jao-haskell-hoogle "Hoogle")
+ ("H" haskell-hoogle-lookup-from-local "Hoogle from local server"))))
+ #+end_src
*** Prolog
#+BEGIN_SRC emacs-lisp
(use-package ediprolog :ensure t)