From 7afa8a7e902e44c9a11e29c23a2b673ef9c1345a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 6 Feb 2020 15:29:28 -0500 Subject: [PATCH] Refactor tools/direnv --- modules/tools/direnv/config.el | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/modules/tools/direnv/config.el b/modules/tools/direnv/config.el index 69c1824d8..04abdab15 100644 --- a/modules/tools/direnv/config.el +++ b/modules/tools/direnv/config.el @@ -1,6 +1,6 @@ ;;; tools/direnv/config.el -*- lexical-binding: t; -*- -(defvar +direnv--keywords +(defvar +direnv-keywords '("direnv_layout_dir" "PATH_add" "path_add" "log_status" "log_error" "has" "join_args" "expand_path" "dotenv" "user_rel_path" "find_up" "source_env" "watch_file" "source_up" "direnv_load" "MANPATH_add" "load_prefix" "layout" @@ -12,22 +12,18 @@ ;;; Packages (use-package! direnv - :after-call after-find-file dired-initial-position-hook + :hook (before-hack-local-variables . direnv--maybe-update-environment) + :hook (flycheck-before-syntax-check . direnv--maybe-update-environment) + :hook (direnv-envrc-mode . +direnv-envrc-fontify-keywords-h) :config - ;; Fontify special .envrc keywords; it's a good indication of whether or not - ;; we've typed them correctly. - (add-hook! 'direnv-envrc-mode-hook - (defun +direnv-envrc-fontify-keywords-h () - (font-lock-add-keywords - nil `((,(regexp-opt +direnv--keywords 'symbols) - (0 font-lock-keyword-face)))))) + (add-to-list 'direnv-non-file-modes 'vterm-mode) - (defadvice! +direnv-update-a (&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." - :before #'flycheck-default-executable-find - (direnv--maybe-update-environment)) + (defun +direnv-envrc-fontify-keywords-h () + "Fontify special .envrc keywords; it's a good indication of whether or not +we've typed them correctly." + (font-lock-add-keywords + nil `((,(regexp-opt +direnv-keywords 'symbols) + (0 font-lock-keyword-face))))) (defadvice! +direnv--fail-gracefully-a (&rest _) "Don't try to use direnv if the executable isn't present."