Supposons que j'ai un répertoire avec ces fichiers.
/foo/bar/baz/.dir-locals.el
/foo/bar/.dir-locals.el
/foo/.dir-locals.el
Quand je vais créer un fichier dans /foo/bar/baz/
, je voudrais les chaîner ensemble de telle sorte que cela /foo/.dir-locals.el
s'applique d'abord, puis /foo/bar/.dir-locals.el
, puis/foo/bar/baz/.dir-locals.el
local-variables
Eric Johnson
la source
la source
.dir-locals
? .Réponses:
Sur la base de la réponse ici , nous le faisons en conseillant
hack-dir-local-variables
de rechercher un répertoire et de vérifier si ce.dir-locals.el
fichier est lisible. Il continuera jusqu'à ce qu'il trouve un répertoire sans lecture.dir-locals.el
.Selon la valeur des
walk-dir-locals-upward
fichiers, il est possible de lire le répertoire courant vers le haut ou le dernier.dir-locals.el
trouvé vers le bas. Par défaut, la valeur par défaut permet aux sous-répertoires d'altérer les paramètres de leurs parents.la source
.dir-locals.el
. Cela fonctionnera-t-il si j'ai une arborescence de répertoiresa/b/c
et qu'il existea/.dir-locals.el
eta/b/c/.dir-locals.el
, mais nona/b/.dir-locals.el
(supposons que je visitea/b/c/foo.el
et que je souhaite que les paramètresa/.dir-locals.el
soient appliqués)?a/b/
cassent la chaîne. Il doit s'arrêter quelque part et si vous voulez qu'il continue, vous pouvez ajouter un fichier dir-local vide.Voici une façon différente de procéder.
Je définis une fonction qui produit la liste de tous les répertoires de la hiérarchie de répertoires actuelle.
Un exemple est en règle:
Maintenant, je peux ajouter des conseils pour
hack-dir-local-variables
faire "semblant" que nous visitons un fichier tout en haut de l'arborescence, appliquer les paramètres locaux du répertoire, puis descendre d'un niveau, appliquer à nouveau les paramètres, etc.la source