diff --git a/modules/tools/direnv/config.el b/modules/tools/direnv/config.el index 2ffd62137..31744deb6 100644 --- a/modules/tools/direnv/config.el +++ b/modules/tools/direnv/config.el @@ -13,5 +13,12 @@ buffer/window/frame switch, which is less expensive." (add-hook 'focus-in-hook #'direnv--maybe-update-environment))) (add-hook 'direnv-mode-hook #'+direnv|init) + (defun +direnv*update (&rest _) + "Update direnv. Useful to advise functions that may run +environment-sensitive logic like `flycheck-default-executable-find'. This fixes +flycheck issues with direnv and on nix." + (direnv-update-environment default-directory)) + (advice-add #'flycheck-default-executable-find :before #'+direnv*update) + (when (executable-find "direnv") (direnv-mode +1)))