From 3a5af1d59191b422c0ee679bd5b575c562603979 Mon Sep 17 00:00:00 2001 From: Patrick Elliott Date: Thu, 19 Jul 2018 16:34:13 +0200 Subject: [PATCH 1/6] Added subword mode hook. --- modules/lang/haskell/config.el | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/lang/haskell/config.el b/modules/lang/haskell/config.el index 968299eaf..37cd31d57 100644 --- a/modules/lang/haskell/config.el +++ b/modules/lang/haskell/config.el @@ -11,6 +11,7 @@ :hook (haskell-mode . hindent-mode)) (after! haskell-mode + (add-hook 'haskell-mode-hook 'subword-mode) (add-hook 'haskell-mode-hook #'interactive-haskell-mode) (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) From 864e15f19de4e316de5799dd7fba18c30181493c Mon Sep 17 00:00:00 2001 From: Patrick Elliott Date: Thu, 19 Jul 2018 16:37:22 +0200 Subject: [PATCH 2/6] Add support for folding haskell code blocks --- modules/lang/haskell/config.el | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/lang/haskell/config.el b/modules/lang/haskell/config.el index 37cd31d57..c8b6a95d4 100644 --- a/modules/lang/haskell/config.el +++ b/modules/lang/haskell/config.el @@ -11,7 +11,8 @@ :hook (haskell-mode . hindent-mode)) (after! haskell-mode - (add-hook 'haskell-mode-hook 'subword-mode) + (add-hook 'haskell-mode-hook 'subword-mode) ;; improves text navigation with camelCase: + (add-hook 'haskell-mode-hook 'haskell-collapse-mode) ;; support collapsing haskell code blocks. (add-hook 'haskell-mode-hook #'interactive-haskell-mode) (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) @@ -25,5 +26,7 @@ :n "b" #'haskell-process-cabal-build :n "c" #'haskell-cabal-visit-file :n "p" #'hindent-reformat-buffer - :v "p" #'hindent-reformat-region)) + :v "p" #'hindent-reformat-region + :n "h" #'haskell-hide-toggle + :n "H" #'haskell-hide-toggle-all)) From b0af6bcbef8333060612d623bc9fad6f81e2cfba Mon Sep 17 00:00:00 2001 From: Patrick Elliott Date: Thu, 19 Jul 2018 17:00:01 +0200 Subject: [PATCH 3/6] Add some useful haskell-mode options --- modules/lang/haskell/config.el | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/lang/haskell/config.el b/modules/lang/haskell/config.el index c8b6a95d4..83e3bbbea 100644 --- a/modules/lang/haskell/config.el +++ b/modules/lang/haskell/config.el @@ -11,8 +11,11 @@ :hook (haskell-mode . hindent-mode)) (after! haskell-mode + (setq haskell-process-suggest-remove-import-lines t ;; warnings for redundant imports etc. + haskell-process-auto-import-loaded-modules t ;; auto import modules + haskell-process-show-overlays nil) ;;flycheck makes this unnecessary (add-hook 'haskell-mode-hook 'subword-mode) ;; improves text navigation with camelCase: - (add-hook 'haskell-mode-hook 'haskell-collapse-mode) ;; support collapsing haskell code blocks. + (add-hook 'haskell-mode-hook #'haskell-collapse-mode) ;; support collapsing haskell code blocks. (add-hook 'haskell-mode-hook #'interactive-haskell-mode) (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) @@ -27,6 +30,6 @@ :n "c" #'haskell-cabal-visit-file :n "p" #'hindent-reformat-buffer :v "p" #'hindent-reformat-region - :n "h" #'haskell-hide-toggle - :n "H" #'haskell-hide-toggle-all)) + :v "h" #'haskell-hide-toggle + :nv "H" #'haskell-hide-toggle-all)) From 4980c66e154abb7d0a947b2e823564e45a6bbc51 Mon Sep 17 00:00:00 2001 From: Patrick Elliott Date: Thu, 19 Jul 2018 17:09:19 +0200 Subject: [PATCH 4/6] Disable overlays conditionally if flycheck is loaded --- modules/lang/haskell/config.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/lang/haskell/config.el b/modules/lang/haskell/config.el index 83e3bbbea..8454129f7 100644 --- a/modules/lang/haskell/config.el +++ b/modules/lang/haskell/config.el @@ -12,8 +12,9 @@ (after! haskell-mode (setq haskell-process-suggest-remove-import-lines t ;; warnings for redundant imports etc. - haskell-process-auto-import-loaded-modules t ;; auto import modules - haskell-process-show-overlays nil) ;;flycheck makes this unnecessary + haskell-process-auto-import-loaded-modules t) ;; auto import modules + (when! (featurep! :feature syntax-checker) + (setq haskell-process-show-overlays nil)) ;;flycheck makes this unnecessary (add-hook 'haskell-mode-hook 'subword-mode) ;; improves text navigation with camelCase: (add-hook 'haskell-mode-hook #'haskell-collapse-mode) ;; support collapsing haskell code blocks. (add-hook 'haskell-mode-hook #'interactive-haskell-mode) From 82fee0161114443de4a1159aa411300bfbb8ac4b Mon Sep 17 00:00:00 2001 From: Patrick Elliott Date: Thu, 19 Jul 2018 17:13:56 +0200 Subject: [PATCH 5/6] fix typo --- modules/lang/haskell/config.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/lang/haskell/config.el b/modules/lang/haskell/config.el index 8454129f7..a0dc5b99d 100644 --- a/modules/lang/haskell/config.el +++ b/modules/lang/haskell/config.el @@ -13,8 +13,8 @@ (after! haskell-mode (setq haskell-process-suggest-remove-import-lines t ;; warnings for redundant imports etc. haskell-process-auto-import-loaded-modules t) ;; auto import modules - (when! (featurep! :feature syntax-checker) - (setq haskell-process-show-overlays nil)) ;;flycheck makes this unnecessary + (when (featurep! :feature syntax-checker) + (setq haskell-process-show-overlays nil)) ;;flycheck makes this unnecessary (add-hook 'haskell-mode-hook 'subword-mode) ;; improves text navigation with camelCase: (add-hook 'haskell-mode-hook #'haskell-collapse-mode) ;; support collapsing haskell code blocks. (add-hook 'haskell-mode-hook #'interactive-haskell-mode) From ce9f7f9bde314682700d666645cc087b3118d648 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 19 Jul 2018 19:03:05 +0200 Subject: [PATCH 6/6] lang/haskell: minor reformatting & refactor Conform to conventions, use `add-hook!` for multiple hooks, use single semi-colon for eol comments, remove comments redundant with code, and use sharp-quote to indicate function symbol. --- modules/lang/haskell/config.el | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/lang/haskell/config.el b/modules/lang/haskell/config.el index a0dc5b99d..5b0231441 100644 --- a/modules/lang/haskell/config.el +++ b/modules/lang/haskell/config.el @@ -11,13 +11,14 @@ :hook (haskell-mode . hindent-mode)) (after! haskell-mode - (setq haskell-process-suggest-remove-import-lines t ;; warnings for redundant imports etc. - haskell-process-auto-import-loaded-modules t) ;; auto import modules + (setq haskell-process-suggest-remove-import-lines t ; warnings for redundant imports etc + haskell-process-auto-import-loaded-modules t) (when (featurep! :feature syntax-checker) - (setq haskell-process-show-overlays nil)) ;;flycheck makes this unnecessary - (add-hook 'haskell-mode-hook 'subword-mode) ;; improves text navigation with camelCase: - (add-hook 'haskell-mode-hook #'haskell-collapse-mode) ;; support collapsing haskell code blocks. - (add-hook 'haskell-mode-hook #'interactive-haskell-mode) + (setq haskell-process-show-overlays nil)) ; flycheck makes this unnecessary + (add-hook! 'haskell-mode-hook + #'(subword-mode ; improves text navigation with camelCase + haskell-collapse-mode ; support folding haskell code blocks + interactive-haskell-mode)) (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-repl-buffer)