diff --git a/languages/elixir.el b/languages/elixir.el index fec90b1..89d3353 100644 --- a/languages/elixir.el +++ b/languages/elixir.el @@ -17,10 +17,12 @@ ^Elixir^ ^Actions^ ^^^^^^^^----------------------------------------------------------------------- _f_: Format buffer +_i_: imenu " ("q" nil "cancel" :color blue) - ("f" elixir-format)) + ("f" elixir-format) + ("i" lsp-ui-imenu)) (defun activate-elixir-mode () "All things Elixir." diff --git a/languages/fsharp.el b/languages/fsharp.el index fc2a477..2d8876c 100644 --- a/languages/fsharp.el +++ b/languages/fsharp.el @@ -18,11 +18,30 @@ :ensure t :defer t) +(defhydra my-fsharp/context-hydra (:color teal :hint nil) + " + Fsharp actions + + ^Fsharp^ ^Actions^ +^^^^^^^^----------------------------------------------------------------------- +_f_: Format buffer +_i_: imenu +" + ("q" nil "cancel" :color blue) + + ("f" lsp-format-buffer) + ("i" lsp-ui-imenu)) + (defun activate-fsharp-mode () "Activate F# goodies." (set-indent 4) (column-enforce-n 100) - (lsp-deferred)) + (lsp-deferred) + (define-key fsharp-mode-map (kbd "C-c l") 'my-fsharp/context-hydra/body) + + ;; Company list override + (add-to-list (make-local-variable 'company-backends) + '(company-capf company-yasnippet))) (add-hook 'fsharp-mode-hook 'activate-fsharp-mode) diff --git a/languages/haskell.el b/languages/haskell.el index b59f371..49ce874 100644 --- a/languages/haskell.el +++ b/languages/haskell.el @@ -18,20 +18,37 @@ :ensure t :defer t) -(use-package dante +(use-package lsp-haskell :ensure t :defer t - :requires (haskell-mode)) + :requires (lsp-mode lsp-ui haskell-mode) + :config + (setq lsp-haskell-process-path-hie "haskell-language-server-wrapper")) + +(defhydra my-haskell/context-hydra (:color teal :hint nil) + " + Haskell actions + + ^Haskell^ ^Actions^ +^^^^^^^^----------------------------------------------------------------------- +_f_: Format buffer +_i_: imenu +" + ("q" nil "cancel" :color blue) + + ("f" lsp-format-buffer) + ("i" lsp-ui-imenu)) (defun activate-haskell-mode () "Run this in haskell-mode." (set-indent 2) (column-enforce-n 80) - (dante-mode) + (lsp) + (define-key haskell-mode-map (kbd "C-c l") 'my-haskell/context-hydra/body) ;; Company list override (add-to-list (make-local-variable 'company-backends) - '(dante-company company-yasnippet))) + '(company-capf company-yasnippet))) (add-hook 'haskell-mode-hook 'activate-haskell-mode)