Supongamos que tengo un directorio con estos archivos.
/foo/bar/baz/.dir-locals.el
/foo/bar/.dir-locals.el
/foo/.dir-locals.el
Cuando voy a crear un archivo /foo/bar/baz/
, me gustaría encadenarlos para que se /foo/.dir-locals.el
apliquen primero, y luego /foo/bar/.dir-locals.el
, y luego/foo/bar/baz/.dir-locals.el
local-variables
Eric Johnson
fuente
fuente
.dir-locals
? .Respuestas:
Con base en la respuesta aquí , hacemos esto al aconsejar
hack-dir-local-variables
que busquemos un directorio y carguemos si ese.dir-locals.el
archivo es legible. Continuará subiendo hasta que encuentre un directorio que no sea legible.dir-locals.el
.Dependiendo del valor de
walk-dir-locals-upward
los archivos se pueden leer desde el directorio actual hacia arriba o desde el último.dir-locals.el
encontrado hacia abajo. Hacia abajo es el valor predeterminado para que los subdirectorios puedan cambiar la configuración de sus padres.fuente
.dir-locals.el
. ¿Funcionará si tengo un árbol de directoriosa/b/c
y existena/.dir-locals.el
ya/b/c/.dir-locals.el
, pero noa/b/.dir-locals.el
(supongo que estoy visitandoa/b/c/foo.el
y quieroa/.dir-locals.el
que se aplique la configuración )?a/b/
rompen la cadena. Tiene que detenerse en algún lugar y, si desea que continúe, puede agregar archivos dir-locales vacíos.Aquí hay una forma diferente de hacer esto.
Defino una función que produce la lista de todos los directorios en la jerarquía de directorios actual.
Un ejemplo está en orden:
Ahora puedo agregar consejos para
hack-dir-local-variables
"simular" que estamos visitando un archivo en la parte superior del árbol, aplicar configuraciones locales de directorio, luego bajar un nivel, aplicar configuraciones nuevamente, y así sucesivamente.fuente