Saya punya wajah, dibuat dengan cara ini:
(defface test-face
'((t . (:height 2.0)))
"A face for testing.")
Saya ingin memasukkan beberapa teks dengan wajah itu. Tetapi cara-cara ini menyisipkan teks tanpa wajah:
(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))
Dan bahkan memasukkan teks terlebih dahulu, lalu kembali untuk meletakkan wajah di atasnya tidak berfungsi:
(progn
(insert "text to insert")
(add-text-properties
(save-excursion
(backward-word 3)
(point))
(point)
'(face test-face)))
Masalahnya bukan definisi wajah, karena jika saya pergi untuk menyesuaikannya, itu sudah muncul dengan tinggi dua kali lebih besar. Meski begitu, meratakan wajah juga tidak bekerja:
(insert (propertize "to insert" 'face '(:height 2.0)))
Jadi bagaimana saya bisa memasukkan beberapa teks dengan wajah tertentu? Saya tahu saya bisa menggunakan overlay, tapi itu kelihatannya berlebihan karena lebih bertele-tele, membutuhkan teks yang akan disisipkan terlebih dahulu (jadi kita harus mencari tahu ukuran dan posisi teks yang akan dilapis) dan mengharuskan membuat lebih banyak sampah menjadi dikumpulkan.
face
untuk kode penyorotan sintaks, jadi itu mengganti properti wajah Anda. Saya yakin pasti ada beberapa cara untuk menonaktifkan font-lock untuk teks yang diberikan tetapi saya harus meneliti sedikit kode (tidak ada waktu sekarang). Mungkin membacafont-lock.el
kode akan memberikan petunjukJawaban:
Ada beberapa masalah dengan kode:
put-text-property
diterapkan ke suatu objek. Dalam hal ini string Anda. Anda harus meneruskannya sebagai parameter terakhir.put-text-property
mulai menghitung nol.font-lock-mode
diaktifkan, itu akan menghapus teks apa pun dariface
properti.Bagian kode berikut berfungsi, jika mode font-lock dinonaktifkan:
Jika Anda ingin menggunakan ini dengan kunci-huruf diaktifkan, Anda dapat mengatur properti
font-lock-face
sebagai gantinya. Ini memiliki efek yang sama tetapi tidak terpengaruh olehfont-lock
.sumber