From 2ec3254f85b43312257abf03e16a1e906324ed89 Mon Sep 17 00:00:00 2001 From: Griffin Smith Date: Thu, 2 Jul 2020 23:20:21 -0400 Subject: [PATCH] feat(gs/emacs): Update hie invocation for depot Update the invocation of the hie.sh script as part of +grfn/haskell-mode-setup to be compatible with the new depot-integrated xanthous. Change-Id: Ia3ef50fb08464a533efdfed4da66e2be00446ea6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/891 Tested-by: BuildkiteCI Reviewed-by: glittershark Reviewed-by: BuildkiteCI --- users/glittershark/emacs.d/config.el | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/users/glittershark/emacs.d/config.el b/users/glittershark/emacs.d/config.el index 59efa211c..a2b05399f 100644 --- a/users/glittershark/emacs.d/config.el +++ b/users/glittershark/emacs.d/config.el @@ -702,16 +702,18 @@ (flymake-mode -1) ;; If there’s a 'hie.sh' defined locally by a project ;; (e.g. to run HIE in a nix-shell), use it… - (let ((hie-directory (locate-dominating-file default-directory "hie.sh"))) - (when hie-directory - (setq-local lsp-haskell-process-path-hie (expand-file-name "hie.sh" hie-directory)) + (when-let ((project-dir (locate-dominating-file default-directory "hie.sh"))) + (cl-flet + ((which (cmd) + (s-trim + (shell-command-to-string + (concat + "nix-shell " + (expand-file-name "shell.nix" project-dir) + " --run \"which " cmd "\" 2>/dev/null"))))) (setq-local - haskell-hoogle-command - (s-trim - (shell-command-to-string - (concat - "nix-shell " (expand-file-name "shell.nix" hie-directory) - " --run \"which hoogle\" 2>/dev/null")))))) + lsp-haskell-process-path-hie (expand-file-name "hie.sh" project-dir) + haskell-hoogle-command (which "hoogle")))) ;; … and only then setup the LSP. (lsp)) @@ -727,9 +729,10 @@ ;; (haskell-mode . lsp-haskell-enable) :config (add-hook 'haskell-mode-hook #'+grfn/haskell-mode-setup 't) - (setq lsp-haskell-process-path-hie "/home/griffin/.nix-profile/bin/hie-8.6.5" - lsp-haskell-process-args-hie - '("-d" "-l" "/tmp/hie.log" "+RTS" "-M4G" "-H1G" "-K4G" "-A16M" "-RTS"))) + (setq + ;; lsp-haskell-process-path-hie "/home/griffin/.nix-profile/bin/hie-8.6.5" + lsp-haskell-process-args-hie + '("-d" "-l" "/tmp/hie.log" "+RTS" "-M4G" "-H1G" "-K4G" "-A16M" "-RTS"))) (use-package! lsp-imenu :after (lsp-mode lsp-ui)