emacs: add tmr-timer to the completion-category-overrides

This commit is contained in:
Protesilaos 2026-07-31 13:47:24 +03:00
parent 143af9d42f
commit 3d2dd92060
No known key found for this signature in database
GPG key ID: 99BD6459CD5CA3EA
2 changed files with 44 additions and 36 deletions

View file

@ -18,37 +18,41 @@
(prot-minibuffer-missing-categories-mode 1)
;; NOTE 2025-12-02: The `eager-display' and `eager-update' are part of Emacs 31.
(let* ((eager-update-properties '((eager-display . nil)
(let* ((eager-both '((eager-display . t)
(eager-update . t)))
(eager-update-properties-no-sort (append eager-update-properties (list (cons 'display-sort-function #'identity)))))
(eager-both-no-sort (append eager-both (list (cons 'display-sort-function #'identity))))
(eager-update-only '((eager-display . nil)
(eager-update . t)))
(eager-update-only-no-sort (append eager-update-only (list (cons 'display-sort-function #'identity)))))
(setq completion-category-overrides
`((file . (,@eager-update-properties
`((file . (,@eager-update-only
(styles . (partial-completion))
(group-function . ,#'prot-minibuffer-file-group)
(affixation-function . ,#'prot-minibuffer-file-affixate)
(display-sort-function . ,#'prot-minibuffer-file-sort)))
(buffer . (,@eager-update-properties
(buffer . (,@eager-update-only
(affixation-function . ,#'prot-minibuffer-buffer-affixate)))
(project-file . (,@eager-update-properties
(project-file . (,@eager-update-only
(group-function . ,#'prot-minibuffer-file-group)
(affixation-function . ,#'prot-minibuffer-file-affixate)))
(prot-minibuffer-library . (,@eager-update-properties
(prot-minibuffer-library . (,@eager-update-only
(annotation-function . ,#'prot-minibuffer-library-annotate)
(display-sort-function . ,#'prot-minibuffer-library-sort)))
(bookmark . (,@eager-update-properties
(bookmark . (,@eager-update-only
(affixation-function . ,#'prot-minibuffer-bookmark-affixate)))
(command . (,@eager-update-properties
(command . (,@eager-update-only
(affixation-function . nil) ; so that the `annotation-function' can take effect
(annotation-function . ,#'prot-minibuffer-command-annotate)))
(symbol-help . ,eager-update-properties)
(denote-file . ,eager-update-properties)
(prot-minibuffer-emoji . ,eager-update-properties)
(theme . ,eager-update-properties)
(unicode-name . ,eager-update-properties)
(prot-minibuffer-pass . ,eager-update-properties)
(imenu . ,eager-update-properties-no-sort)
(consult-location . ,eager-update-properties-no-sort)
(prot-minibuffer-kill-ring . ,eager-update-properties-no-sort)))))
(symbol-help . ,eager-update-only)
(denote-file . ,eager-update-only)
(tmr-timer . ,eager-both)
(prot-minibuffer-emoji . ,eager-update-only)
(theme . ,eager-update-only)
(unicode-name . ,eager-update-only)
(prot-minibuffer-pass . ,eager-update-only)
(imenu . ,eager-update-only-no-sort)
(consult-location . ,eager-update-only-no-sort)
(prot-minibuffer-kill-ring . ,eager-update-only-no-sort)))))
;;; Orderless completion style (and prot-orderless.el)
(when prot-emacs-completion-extras

View file

@ -4188,37 +4188,41 @@ for this.
(prot-minibuffer-missing-categories-mode 1)
;; NOTE 2025-12-02: The `eager-display' and `eager-update' are part of Emacs 31.
(let* ((eager-update-properties '((eager-display . nil)
(let* ((eager-both '((eager-display . t)
(eager-update . t)))
(eager-update-properties-no-sort (append eager-update-properties (list (cons 'display-sort-function #'identity)))))
(eager-both-no-sort (append eager-both (list (cons 'display-sort-function #'identity))))
(eager-update-only '((eager-display . nil)
(eager-update . t)))
(eager-update-only-no-sort (append eager-update-only (list (cons 'display-sort-function #'identity)))))
(setq completion-category-overrides
`((file . (,@eager-update-properties
`((file . (,@eager-update-only
(styles . (partial-completion))
(group-function . ,#'prot-minibuffer-file-group)
(affixation-function . ,#'prot-minibuffer-file-affixate)
(display-sort-function . ,#'prot-minibuffer-file-sort)))
(buffer . (,@eager-update-properties
(buffer . (,@eager-update-only
(affixation-function . ,#'prot-minibuffer-buffer-affixate)))
(project-file . (,@eager-update-properties
(project-file . (,@eager-update-only
(group-function . ,#'prot-minibuffer-file-group)
(affixation-function . ,#'prot-minibuffer-file-affixate)))
(prot-minibuffer-library . (,@eager-update-properties
(prot-minibuffer-library . (,@eager-update-only
(annotation-function . ,#'prot-minibuffer-library-annotate)
(display-sort-function . ,#'prot-minibuffer-library-sort)))
(bookmark . (,@eager-update-properties
(bookmark . (,@eager-update-only
(affixation-function . ,#'prot-minibuffer-bookmark-affixate)))
(command . (,@eager-update-properties
(command . (,@eager-update-only
(affixation-function . nil) ; so that the `annotation-function' can take effect
(annotation-function . ,#'prot-minibuffer-command-annotate)))
(symbol-help . ,eager-update-properties)
(denote-file . ,eager-update-properties)
(prot-minibuffer-emoji . ,eager-update-properties)
(theme . ,eager-update-properties)
(unicode-name . ,eager-update-properties)
(prot-minibuffer-pass . ,eager-update-properties)
(imenu . ,eager-update-properties-no-sort)
(consult-location . ,eager-update-properties-no-sort)
(prot-minibuffer-kill-ring . ,eager-update-properties-no-sort)))))
(symbol-help . ,eager-update-only)
(denote-file . ,eager-update-only)
(tmr-timer . ,eager-both)
(prot-minibuffer-emoji . ,eager-update-only)
(theme . ,eager-update-only)
(unicode-name . ,eager-update-only)
(prot-minibuffer-pass . ,eager-update-only)
(imenu . ,eager-update-only-no-sort)
(consult-location . ,eager-update-only-no-sort)
(prot-minibuffer-kill-ring . ,eager-update-only-no-sort)))))
#+end_src
*** The =prot-emacs-completion.el= for the ~orderless~ completion style