Get font face under cursor in Emacs
I've been developing my own custom color theme, and it'd be really useful if I could get a list of font-faces affecting the text under the cursor.
Something like Textmate's show current scope command.
That would save me the trouble of doing M-x customize-face and looking through available options, guessing at which one affects the current word I'm on.
Any ideas?
what-cursor-position
with a prefix argument shows the face under point, among other information.
Keyboard shortcut is C-u C-x =
Example output (the face property is shown in the last paragraph):
position: 5356 of 25376 (21%), column: 4
character: r (displayed as r) (codepoint 114, #o162, #x72)
preferred charset: ascii (ASCII (ISO646 IRV))
code point in charset: 0x72
syntax: w which means: word
category: .:Base, L:Left-to-right (strong), a:ASCII, l:Latin, r:Roman
buffer code: #x72
file code: #x72 (encoded by coding system undecided-unix)
display: by this font (glyph code)
nil:-apple-Monaco-medium-normal-normal-*-12-*-*-*-m-0-iso10646-1 (#x55)
Character code properties: customize what to show
name: LATIN SMALL LETTER R
general-category: Ll (Letter, Lowercase)
decomposition: (114) ('r')
There are text properties here:
face org-level-2
fontified t
[back]
M-x describe-face
You can define what-face
with this code:
(defun what-face (pos)
(interactive "d")
(let ((face (or (get-char-property (pos) 'read-face-name)
(get-char-property (pos) 'face))))
(if face (message "Face: %s" face) (message "No face at %d" pos))))
After that,
M-x what-face
will print the face found at the current point.
(Thanks to thedz for pointing out that what-face
wasn’t built in.)