Ho una faccia, creata in questo modo:
(defface test-face
'((t . (:height 2.0)))
"A face for testing.")
Vorrei inserire del testo con quella faccia. Ma questi modi inseriscono il testo senza la faccia:
(insert (propertize "text to insert" 'face 'test-face))
(let ((current-string "text to insert"))
(put-text-property 1 (length current-string) 'face 'test-face)
(insert current-string))
E anche inserire prima il testo, quindi tornare indietro per mettere la faccia su di esso non funziona:
(progn
(insert "text to insert")
(add-text-properties
(save-excursion
(backward-word 3)
(point))
(point)
'(face test-face)))
Il problema non è la definizione del viso, perché se vado a personalizzarlo, si presenta già con un'altezza doppia. Anche così, anche il rivestimento del viso non funziona:
(insert (propertize "to insert" 'face '(:height 2.0)))
Quindi, come posso inserire un testo con la faccia specifica? So di poter usare un overlay, ma sembra eccessivo perché è più dettagliato, richiede prima di inserire il testo (quindi dobbiamo scoprire le dimensioni e la posizione del testo da sovrapporre) e richiede di fare più spazzatura per essere raccolto.
face
per il codice di evidenziazione della sintassi, quindi sostituisce la proprietà del viso. Sono sicuro che ci deve essere un modo per disabilitare il blocco dei caratteri per un dato testo, ma dovrò cercare un po 'il codice (non c'è tempo in questo momento). Forse leggere ilfont-lock.el
codice darebbe qualche indizio