Предположим, у меня есть каталог с этими файлами.
/foo/bar/baz/.dir-locals.el
/foo/bar/.dir-locals.el
/foo/.dir-locals.el
Когда я иду, чтобы создать файл в /foo/bar/baz/
, я хотел бы последовательно соединить их так, чтобы /foo/.dir-locals.el
сначала применялось , а затем /foo/bar/.dir-locals.el
, а затем/foo/bar/baz/.dir-locals.el
local-variables
Эрик Джонсон
источник
источник
.dir-locals
? ,Ответы:
Основываясь на ответе здесь , мы сделаем это, посоветовав
hack-dir-local-variables
поискать одну директорию и проверить, доступен ли этот.dir-locals.el
файл для чтения. Он будет продолжать работать до тех пор, пока не найдет каталог, который нельзя прочитать.dir-locals.el
.В зависимости от значения
walk-dir-locals-upward
файлы могут быть прочитаны из текущего каталога вверх или из последнего.dir-locals.el
найденного вниз. По умолчанию используется значение downward, поэтому подкаталоги могут сглаживать настройки своих родителей.источник
.dir-locals.el
. Будет это работать , если у меня есть дерево каталоговa/b/c
и существуетa/.dir-locals.el
иa/b/c/.dir-locals.el
, но нетa/b/.dir-locals.el
(предположит , что я посещаю ,a/b/c/foo.el
и я хочу от настройки ,a/.dir-locals.el
которые должны применяться)?a/b/
разрывают цепь. Он должен где-то остановиться, и если вы хотите, чтобы он продолжался, вы можете добавить пустые файлы dir-locals.Вот другой способ сделать это.
Я определяю функцию, которая создает список всех каталогов в текущей иерархии каталогов.
Пример по порядку:
Теперь я могу добавить совет,
hack-dir-local-variables
чтобы «притвориться», что мы посещаем файл в самой верхней части дерева, применить локальные настройки каталога, затем перейти на один уровень вниз, применить настройки снова и так далее.источник