feat(haskell): add treesit support

This commit is contained in:
Henrik Lissner
2025-08-27 17:09:27 +02:00
parent 086a0d30d0
commit 47fe11cd76
3 changed files with 16 additions and 3 deletions

View File

@@ -28,9 +28,6 @@
#'haskell-collapse-mode ; support folding haskell code blocks
#'interactive-haskell-mode)
(when (modulep! +tree-sitter)
(add-hook 'haskell-mode-local-vars-hook #'tree-sitter! 'append))
(add-to-list 'completion-ignored-extensions ".hi")
(map! :map haskell-mode-map
@@ -47,6 +44,16 @@
"H" #'haskell-hide-toggle-all))
;; TODO: Mirror other haskell-mode config to ts-mode
(use-package! haskell-ts-mode
:when (modulep! +tree-sitter)
:when (fboundp 'haskell-ts-mode)
:defer t
:init
(set-tree-sitter! 'haskell-mode 'haskell-ts-mode
'((haskell :url "https://github.com/tree-sitter/tree-sitter-haskell"))))
(use-package! lsp-haskell
:when (modulep! +lsp)
:defer t

View File

@@ -5,6 +5,10 @@
(modulep! :tools lsp))
"This module requires (:tools lsp)")
(assert! (or (not (modulep! +tree-sitter))
(modulep! :tools tree-sitter))
"This module requires (:tools tree-sitter)")
(unless (executable-find "cabal")
(warn! "Couldn't find cabal. haskell-mode may have issues."))

View File

@@ -2,6 +2,8 @@
;;; lang/haskell/packages.el
(package! haskell-mode :pin "e9c356739310332afe59b10ffa2e6c3e76f124e3")
(when (modulep! +tree-sitter)
(package! haskell-ts-mode :pin "b47211699944997bfb03fd88b1157dd71727bad7"))
(when (and (modulep! +lsp)
(modulep! :tools lsp -eglot))