From 5850eca0f094b35dcfc8a7da223bc836c7bbec3b Mon Sep 17 00:00:00 2001 From: Joseph LaFreniere Date: Sun, 21 Mar 2021 18:58:25 -0500 Subject: [PATCH] gnu: Add emacs-cascading-dir-locals. * gnu/packages/emacs-xyz.scm (emacs-cascading-dir-locals): New variable. --- gnu/packages/emacs-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 7085318e58..da89c41275 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -27253,3 +27253,36 @@ and prefered services can easily be configured.") "This package provides an Elisp wrapper around the Java @command{keytool} command and major mode for viewing Java keystores.") (license license:expat)))) + +(define-public emacs-cascading-dir-locals + (let ((release "0.1") + (revision "0") + (commit "efdf5e6d62b955ee0ca3c170eae1d388799f9fa0")) + (package + (name "emacs-cascading-dir-locals") + (version (git-version release revision commit)) + (home-page "https://github.com/fritzgrabo/cascading-dir-locals") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jwd99kk5l588n7wwi1x3b4bgimm66x1icna3n20pwaj49kf0zy8")))) + (build-system emacs-build-system) + (synopsis "Apply all @file{.dir-locals.el} from root to current directory") + (description + "This package provides a global minor mode that changes how Emacs +handles the lookup of applicable dir-locals files (@file{.dir-locals.el}): +instead of starting at the directory of the visited file and moving up the +directory tree only until a first dir-locals file is found, collect and apply +all (!) dir-locals files found from the current directory up to the root one. + +Values specified in files nearer to the current directory take precedence over +values in files farther away from it. + +You might want to use this to globally set dir-local variables that apply to +all of your projects, then override or add variables on a per-project basis.") + (license license:gpl3+)))) -- 2.31.0