emacs: tweak the completion-category-overrides

This commit is contained in:
Protesilaos 2026-07-29 15:49:53 +03:00
parent 6d4b0527a5
commit 4b5d83b693
No known key found for this signature in database
GPG key ID: 99BD6459CD5CA3EA
2 changed files with 22 additions and 36 deletions

View file

@ -22,40 +22,33 @@
(eager-update . t)))
(eager-update-properties-no-sort (append eager-update-properties (list (cons 'display-sort-function #'identity)))))
(setq completion-category-overrides
`((file . ((styles . (partial-completion))
(eager-display . nil)
(eager-update . t)
`((file . (,@eager-update-properties
(styles . (partial-completion))
(group-function . ,#'prot-minibuffer-file-group)
(affixation-function . ,#'prot-minibuffer-file-affixate)
(display-sort-function . ,#'prot-minibuffer-file-sort)))
(bookmark . (,@eager-update-properties
(affixation-function . ,#'prot-minibuffer-bookmark-affixate)))
(buffer . (,@eager-update-properties
(affixation-function . ,#'prot-minibuffer-buffer-affixate)))
(project-file . (,@eager-update-properties
(group-function . ,#'prot-minibuffer-file-group)
(affixation-function . ,#'prot-minibuffer-file-affixate)))
(prot-minibuffer-library . (,@eager-update-properties
(annotation-function . ,#'prot-minibuffer-library-annotate)
(display-sort-function . ,#'prot-minibuffer-library-sort)))
(symbol-help . (,@eager-update-properties
(group-function . ,#'prot-minibuffer-symbol-group)
(display-sort-function . ,#'prot-minibuffer-symbol-sort)))
(buffer . (,@eager-update-properties
;; NOTE 2026-07-25: I am disabling this because it messes up with the sorting.
;; (group-function . ,#'prot-minibuffer-buffer-group)
(affixation-function . ,#'prot-minibuffer-buffer-affixate)
(display-sort-function . ,#'prot-minibuffer-buffer-sort)))
(command . ((affixation-function . nil)
(bookmark . (,@eager-update-properties
(affixation-function . ,#'prot-minibuffer-bookmark-affixate)))
(command . (,@eager-update-properties
(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)
(imenu . ,eager-update-properties-no-sort)
(consult-location . ,eager-update-properties-no-sort)
(prot-minibuffer-kill-ring . ((eager-display . t)
(eager-update . t)
(display-sort-function . identity)))
(prot-minibuffer-pass . ((display-sort-function . minibuffer-sort-by-history)))))))
(prot-minibuffer-pass . ,eager-update-properties-no-sort)
(prot-minibuffer-kill-ring . ,eager-update-properties-no-sort)))))
;;; Orderless completion style (and prot-orderless.el)
(when prot-emacs-completion-extras

View file

@ -4192,40 +4192,33 @@ for this.
(eager-update . t)))
(eager-update-properties-no-sort (append eager-update-properties (list (cons 'display-sort-function #'identity)))))
(setq completion-category-overrides
`((file . ((styles . (partial-completion))
(eager-display . nil)
(eager-update . t)
`((file . (,@eager-update-properties
(styles . (partial-completion))
(group-function . ,#'prot-minibuffer-file-group)
(affixation-function . ,#'prot-minibuffer-file-affixate)
(display-sort-function . ,#'prot-minibuffer-file-sort)))
(bookmark . (,@eager-update-properties
(affixation-function . ,#'prot-minibuffer-bookmark-affixate)))
(buffer . (,@eager-update-properties
(affixation-function . ,#'prot-minibuffer-buffer-affixate)))
(project-file . (,@eager-update-properties
(group-function . ,#'prot-minibuffer-file-group)
(affixation-function . ,#'prot-minibuffer-file-affixate)))
(prot-minibuffer-library . (,@eager-update-properties
(annotation-function . ,#'prot-minibuffer-library-annotate)
(display-sort-function . ,#'prot-minibuffer-library-sort)))
(symbol-help . (,@eager-update-properties
(group-function . ,#'prot-minibuffer-symbol-group)
(display-sort-function . ,#'prot-minibuffer-symbol-sort)))
(buffer . (,@eager-update-properties
;; NOTE 2026-07-25: I am disabling this because it messes up with the sorting.
;; (group-function . ,#'prot-minibuffer-buffer-group)
(affixation-function . ,#'prot-minibuffer-buffer-affixate)
(display-sort-function . ,#'prot-minibuffer-buffer-sort)))
(command . ((affixation-function . nil)
(bookmark . (,@eager-update-properties
(affixation-function . ,#'prot-minibuffer-bookmark-affixate)))
(command . (,@eager-update-properties
(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)
(imenu . ,eager-update-properties-no-sort)
(consult-location . ,eager-update-properties-no-sort)
(prot-minibuffer-kill-ring . ((eager-display . t)
(eager-update . t)
(display-sort-function . identity)))
(prot-minibuffer-pass . ((display-sort-function . minibuffer-sort-by-history)))))))
(prot-minibuffer-pass . ,eager-update-properties-no-sort)
(prot-minibuffer-kill-ring . ,eager-update-properties-no-sort)))))
#+end_src
*** The =prot-emacs-completion.el= for the ~orderless~ completion style