Załóżmy, że mam katalog z tymi plikami.
/foo/bar/baz/.dir-locals.el
/foo/bar/.dir-locals.el
/foo/.dir-locals.el
Kiedy idę, aby utworzyć plik /foo/bar/baz/
, chciałbym połączyć je w łańcuch tak, aby /foo/.dir-locals.el
obowiązywało najpierw, a potem /foo/bar/.dir-locals.el
i potem/foo/bar/baz/.dir-locals.el
local-variables
Eric Johnson
źródło
źródło
.dir-locals
? .Odpowiedzi:
W oparciu o odpowiedź tutaj , robimy to, doradzając,
hack-dir-local-variables
aby przejrzeć jeden katalog w górę i załadować sprawdzić, czy ten.dir-locals.el
plik jest czytelny. Będzie kontynuował, aż znajdzie katalog, którego nie można odczytać.dir-locals.el
.W zależności od wartości
walk-dir-locals-upward
plików można odczytać z bieżącego katalogu w górę lub z ostatniego.dir-locals.el
znalezionego w dół. W dół jest ustawienie domyślne, dzięki czemu podkatalogi mogą blokować ustawienia swoich rodziców.źródło
.dir-locals.el
. Czy to zadziała, jeśli mam drzewo katalogówa/b/c
i istniejąa/.dir-locals.el
ia/b/c/.dir-locals.el
, ale niea/b/.dir-locals.el
(zakładam, że odwiedzama/b/c/foo.el
i chcę zastosować ustawieniaa/.dir-locals.el
)?a/b/
przerywają łańcuch. Musi gdzieś się zatrzymać, a jeśli chcesz, żebyś kontynuował, możesz dodać puste pliki katalogów lokalnych.Oto inny sposób na zrobienie tego.
Definiuję funkcję, która tworzy listę wszystkich katalogów w bieżącej hierarchii katalogów.
Przykład jest w kolejności:
Teraz mogę dodać radę,
hack-dir-local-variables
aby „udawać”, że odwiedzamy plik na samej górze drzewa, zastosuj ustawienia lokalne katalogu, następnie zejdź o jeden poziom niżej, zastosuj ustawienia ponownie i tak dalej.źródło