Fontify enlaces rotos en modo org

8

Si creo un mal [[file:link]]o un interno [[Link]]que no existe, me gustaría org-modefontificar esto usando la org-warningcara. ¿Cómo puedo hacer esto?

Gracias,

Adán
fuente

Respuestas:

7

En org-9 podría ser tan simple como esto para enlaces de archivos:

(org-link-set-parameters
 "file"
 :face (lambda (path) (if (file-exists-p path) 'org-link 'org-warning)))

Para enlaces internos, no conozco una manera fácil de hacerlo.

John Kitchin
fuente
Gracias John! Esto funciona muy bien. ¿Hay alguna forma de actualizar esto automáticamente, de modo que una vez que se crea el archivo, el color cambie?
Adam
Realmente no. Cambiará la próxima vez que sea refontificado. Si cambia la línea o refontifica el búfer, creo que debería cambiar de color.
John Kitchin
¡Gracias! ¿Hay alguna forma de limitar la comprobación a los archivos locales? Emacs no debería intentar conectarse a archivos remotos debido a esto.
Timm
¿Cómo se ve una ruta de archivo remota? Probablemente pueda asociarlo con una expresión regular en una expresión condicional.
John Kitchin
1
Hay file-remote-p, que parece hacer el trabajo. He modificado su código de la siguiente manera:(org-link-set-parameters "file" :face (lambda (path) (when (not (file-remote-p path))(if (file-exists-p path) 'org-link 'org-warning))))
Timm