Puede usar el paquete cara arriba para crear una representación de texto legible por humanos de un texto, con información de la cara. Por ejemplo:
(defun foo (arg)
(if arg 1 2))
Ejecute M-x faceup-vire-buffer RET
, y se muestra lo siguiente:
(«k:defun» «f:foo» («v:arg»)
(«k:if» arg 1 2))
Las caras de bloqueo de fuente estándar se representan con nombres cortos, como k
for font-lock-keyword-face
, mientras que las caras no estándar se presentan con su nombre completo.
(Faceup es un sistema de prueba de regresión para resaltar paquetes, por ejemplo, palabras clave de bloqueo de fuente, la representación de texto se almacena como un archivo de referencia).
EDITAR:
Para responder a la pregunta en el comentario: "Si estoy tratando de depurar las caras utilizadas en una pantalla de minibúfer, ¿esto todavía me dará la información?"
Si lo hace. Sin embargo, debe vincular la función a una tecla ya que ejecutarla usando M-x
no funcionará cuando el minibúfer esté en uso. Por ejemplo:
(global-set-key (kbd "<f6>") 'faceup-view-buffer)
Si por "minibúfer" realmente se refería al área de eco, es decir, le gustaría inspeccionar el mensaje actual que necesitará un poco más. La siguiente función hará esto:
(defun my-faceup-view-current-message ()
(interactive)
(let ((msg (current-message)))
(unless msg
(error "Echo area is empty"))
(with-temp-buffer
(insert msg)
(faceup-view-buffer))))
Por ejemplo, lo siguiente:
(let ((s "My Message"))
(add-text-properties 3 (length s) '(face font-lock-warning-face) s)
(message s)
(my-faceup-view-current-message))
Te mostrará:
My «w:Message»