Suponha que eu tenha um diretório com esses arquivos.
/foo/bar/baz/.dir-locals.el
/foo/bar/.dir-locals.el
/foo/.dir-locals.el
Quando vou criar um arquivo /foo/bar/baz/
, gostaria de encadear uma série de maneira que /foo/.dir-locals.el
se aplique primeiro e depois /foo/bar/.dir-locals.el
e depois/foo/bar/baz/.dir-locals.el
local-variables
Eric Johnson
fonte
fonte
.dir-locals
? .Respostas:
Com base na resposta aqui , fazemos isso aconselhando
hack-dir-local-variables
a procurar um diretório e carregar se o.dir-locals.el
arquivo está legível. Ele continuará subindo até encontrar um diretório sem legibilidade.dir-locals.el
.Dependendo do valor dos
walk-dir-locals-upward
arquivos, pode ser lido do diretório atual para cima ou do último.dir-locals.el
encontrado para baixo. Para baixo é o padrão, para que os subdiretórios possam ignorar as configurações de seus pais.fonte
.dir-locals.el
. Funcionará se eu tiver uma árvore de diretóriosa/b/c
e existira/.dir-locals.el
ea/b/c/.dir-locals.el
, mas nãoa/b/.dir-locals.el
(suponha que eu esteja visitandoa/b/c/foo.el
e deseje que as configuraçõesa/.dir-locals.el
sejam aplicadas)?a/b/
quebram a cadeia. Ele precisa parar em algum lugar e, se você quiser continuar, pode adicionar um arquivo dir-locals vazio.Aqui está uma maneira diferente de fazer isso.
Defino uma função que produz a lista de todos os diretórios na hierarquia de diretórios atual.
Um exemplo está em ordem:
Agora, posso adicionar conselhos para
hack-dir-local-variables
fazê-lo "fingir" que estamos visitando um arquivo na parte superior da árvore, aplicar configurações de diretório local e, em seguida, descer um nível, aplicar configurações novamente e assim por diante.fonte