mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-21 06:55:39 +00:00
* cus-face.el: Provide completion for font families (bug#74362)
* lisp/cus-edit.el (custom-face--font-cache-timeout): New var. (custom-face--font-completion): New function. * lisp/cus-face.el (custom-face-attributes): Use it.
This commit is contained in:
parent
200c877cd4
commit
ea55048823
2
etc/NEWS
2
etc/NEWS
@ -167,6 +167,8 @@ GNU ELPA instead.
|
||||
This inherits from the 'header-line' face, but is the face actually used
|
||||
on the header lines (along with 'header-line-inactive').
|
||||
|
||||
** In 'customize-face', the "Font family" attribute now supports completion.
|
||||
|
||||
|
||||
* Editing Changes in Emacs 31.1
|
||||
|
||||
|
@ -3425,6 +3425,28 @@ to switch between two values."
|
||||
|
||||
;;; The `custom-face-edit' Widget.
|
||||
|
||||
(defvar custom-face--font-cache-timeout 60
|
||||
"Refresh the cache of font families after at most this many seconds.")
|
||||
|
||||
(defalias 'custom-face--font-completion
|
||||
(let ((lastlist nil)
|
||||
(lasttime nil)
|
||||
(lastframe nil))
|
||||
(completion-table-case-fold
|
||||
(completion-table-dynamic
|
||||
(lambda (_string)
|
||||
;; Flush the cache timeout after a while.
|
||||
(let ((time (float-time)))
|
||||
(if (and lastlist (eq (selected-frame) lastframe)
|
||||
(> custom-face--font-cache-timeout (- time lasttime)))
|
||||
lastlist
|
||||
;; (message "last list time: %s" (if lasttime (- time lasttime)))
|
||||
(setq lasttime time)
|
||||
(setq lastframe (selected-frame))
|
||||
(setq lastlist
|
||||
(nconc (mapcar #'car face-font-family-alternatives)
|
||||
(font-family-list))))))))))
|
||||
|
||||
(define-widget 'custom-face-edit 'checklist
|
||||
"Widget for editing face attributes.
|
||||
The following properties have special meanings for this widget:
|
||||
|
@ -48,7 +48,8 @@
|
||||
(defconst custom-face-attributes
|
||||
`((:family
|
||||
(string :tag "Font Family"
|
||||
:help-echo "Font family or fontset alias name."))
|
||||
:completions custom-face--font-completion
|
||||
:help-echo "Font family or fontset alias name (with completion)."))
|
||||
|
||||
(:foundry
|
||||
(string :tag "Font Foundry"
|
||||
|
Loading…
Reference in New Issue
Block a user