Package: emacs;
Reported by: dino chiesa <dpchiesa <at> hotmail.com>
Date: Mon, 26 May 2025 20:04:02 UTC
Severity: normal
Found in version 30.1
View this message in rfc822 format
From: dino chiesa <dpchiesa <at> hotmail.com> To: 78596 <at> debbugs.gnu.org Subject: bug#78596: 30.1; recentf-open ought to use a completion table and category Date: Mon, 26 May 2025 19:57:39 +0000
This isn't a bug report, more of an enhancement request. Summary I would like recentf-open to use "Programmed Completion" via a completion function. (see 21.6.7 Programmed Completion) That function ought to return metadata with a category that is specific to recentf. Background I've been configuring icomplete-vertical-mode for various things. I learned that by default, when there is no completion table, completion in the minibuffer uses `completion-all-sorted-completions' which is defined in minibuffer.el; by default it uses a function called `minibuffer--sort-by-length-alpha', which sorts candidates first by length, then alphabetically. The result is an aesthetically pleasing pyramid of choices shown vertically in the minibuffer, but it is sort of non-intuitive for things like "open one of the files I've recently visited". This default sorting applies to buffer names, filenames (find-file), command names (M-x), and various other things. I learned also that it is possible to override that default sorting, via `completion-category-overrides`. To make this work, I must add an item to that list with a symbol denoting a category, and then make sure the use of completing-read uses (a) a completion _function_, not just a list of candidates; and (b) that category name in the metadata returned by the completion function. But not all uses of `completing-read' employ a completion function. Without that, I think overriding the sort is unwieldy. recentf-open is one of those cases that does not currently use a completion function. So I propose to modify recentf-open to use a completion function: < (defun recentf-open (file) < "Prompt for FILE in `recentf-list' and visit it. < Enable `recentf-mode' if it isn't already." < (interactive < (list < (progn (unless recentf-mode (recentf-mode 1)) < (completing-read (format-prompt "Open recent file" nil) < (recentf--programmed-completion recentf-list) < nil t)))) --- > (defun recentf-open (file) > "Prompt for FILE in `recentf-list' and visit it. > Enable `recentf-mode' if it isn't already." > (interactive > (list > (progn (unless recentf-mode (recentf-mode 1)) > (completing-read (format-prompt "Open recent file" nil) > recentf-list nil t)))) > And the completion function, I think, can be like this. (defun recentf--programmed-completion (candidates) "Returns a function to be used as the completions parameter in `completing-read' for `recentf-open'. Main purpose is to set metadata, specifically the category, which will allow sorting, completion styles, etc." (let ((candidates candidates)) (lambda (string pred action) (if (eq action 'metadata) `(metadata (category . recentf)) (complete-with-action action candidates string pred))))) If that is done, then users of `recentf-open` who also use `icomplete-vertical-mode` can do something as simple as the following to disable the default "by length then by alpha" sorting for recentf-open: (add-to-list 'completion-category-overrides `(recentf (styles . (substring)) (cycle-sort-function . ,#'identity))) I believe this should have no impact on existing users of `recentf-open'. ==================================================================== In GNU Emacs 30.1 (build 2, x86_64-w64-mingw32) of 2025-02-23 built on AVALON Windowing system distributor 'Microsoft Corp.', version 10.0.26100 System Description: Microsoft Windows 10 Home (v10.0.2009.26100.4061) Configured using: 'configure --with-modules --without-dbus --with-native-compilation=aot --without-compress-install --with-tree-sitter CFLAGS=-O2 prefix=/g/rel/install/emacs-30.1' Configured features: ACL GIF GMP GNUTLS HARFBUZZ JPEG LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB (NATIVE_COMP present but libgccjit not available) Important settings: value of $LANG: ENU locale-coding-system: cp1252 Major mode: ELisp/l Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t default-text-scale-mode: t yas-global-mode: t yas-minor-mode: t company-box-mode: t company-mode: t indent-bars-mode: t display-line-numbers-mode: t auto-revert-mode: t recentf-mode: t flycheck-mode: t marginalia-mode: t icomplete-vertical-mode: t icomplete-mode: t override-global-mode: t global-hl-line-mode: t hl-line-mode: t apheleia-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t abbrev-mode: t Load-path shadows: ~/elisp/json-reformat hides c:/users/dpchi/.emacs.d/elpa/json-reformat-20220905.2342/json-reformat ~/elisp/protobuf-mode hides c:/users/dpchi/.emacs.d/elpa/protobuf-mode-20240823.1417/protobuf-mode ~/elisp/rego-mode hides c:/users/dpchi/.emacs.d/elpa/rego-mode-20201102.1420/rego-mode ~/elisp/wgrep hides c:/users/dpchi/.emacs.d/elpa/wgrep-20230203.1214/wgrep c:/users/dpchi/.emacs.d/elpa/transient-20250520.1040/transient hides c:/emacs/share/emacs/30.1/lisp/transient c:/users/dpchi/.emacs.d/elpa/verilog-mode-2025.1.1.100165202/verilog-mode hides c:/emacs/share/emacs/30.1/lisp/progmodes/verilog-mode c:/users/dpchi/.emacs.d/elpa/idlwave-6.5.1/idlwave hides c:/emacs/share/emacs/30.1/lisp/progmodes/idlwave c:/users/dpchi/.emacs.d/elpa/idlwave-6.5.1/idlw-toolbar hides c:/emacs/share/emacs/30.1/lisp/progmodes/idlw-toolbar c:/users/dpchi/.emacs.d/elpa/idlwave-6.5.1/idlw-shell hides c:/emacs/share/emacs/30.1/lisp/progmodes/idlw-shell c:/users/dpchi/.emacs.d/elpa/idlwave-6.5.1/idlw-help hides c:/emacs/share/emacs/30.1/lisp/progmodes/idlw-help c:/users/dpchi/.emacs.d/elpa/idlwave-6.5.1/idlw-complete-structtag hides c:/emacs/share/emacs/30.1/lisp/progmodes/idlw-complete-structtag c:/users/dpchi/.emacs.d/elpa/flymake-1.4.1/flymake hides c:/emacs/share/emacs/30.1/lisp/progmodes/flymake c:/users/dpchi/.emacs.d/elpa/eglot-1.18/eglot hides c:/emacs/share/emacs/30.1/lisp/progmodes/eglot c:/users/dpchi/.emacs.d/elpa/org-20210929/ox hides c:/emacs/share/emacs/30.1/lisp/org/ox c:/users/dpchi/.emacs.d/elpa/org-20210929/ox-texinfo hides c:/emacs/share/emacs/30.1/lisp/org/ox-texinfo c:/users/dpchi/.emacs.d/elpa/org-20210929/ox-publish hides c:/emacs/share/emacs/30.1/lisp/org/ox-publish c:/users/dpchi/.emacs.d/elpa/org-20210929/ox-org hides c:/emacs/share/emacs/30.1/lisp/org/ox-org c:/users/dpchi/.emacs.d/elpa/org-20210929/ox-odt hides c:/emacs/share/emacs/30.1/lisp/org/ox-odt c:/users/dpchi/.emacs.d/elpa/org-20210929/ox-md hides c:/emacs/share/emacs/30.1/lisp/org/ox-md c:/users/dpchi/.emacs.d/elpa/org-20210929/ox-man hides c:/emacs/share/emacs/30.1/lisp/org/ox-man c:/users/dpchi/.emacs.d/elpa/org-20210929/ox-latex hides c:/emacs/share/emacs/30.1/lisp/org/ox-latex c:/users/dpchi/.emacs.d/elpa/org-20210929/ox-koma-letter hides c:/emacs/share/emacs/30.1/lisp/org/ox-koma-letter c:/users/dpchi/.emacs.d/elpa/org-20210929/ox-icalendar hides c:/emacs/share/emacs/30.1/lisp/org/ox-icalendar c:/users/dpchi/.emacs.d/elpa/org-20210929/ox-html hides c:/emacs/share/emacs/30.1/lisp/org/ox-html c:/users/dpchi/.emacs.d/elpa/org-20210929/ox-beamer hides c:/emacs/share/emacs/30.1/lisp/org/ox-beamer c:/users/dpchi/.emacs.d/elpa/org-20210929/ox-ascii hides c:/emacs/share/emacs/30.1/lisp/org/ox-ascii c:/users/dpchi/.emacs.d/elpa/org-20210929/org hides c:/emacs/share/emacs/30.1/lisp/org/org c:/users/dpchi/.emacs.d/elpa/org-20210929/org-version hides c:/emacs/share/emacs/30.1/lisp/org/org-version c:/users/dpchi/.emacs.d/elpa/org-20210929/org-timer hides c:/emacs/share/emacs/30.1/lisp/org/org-timer c:/users/dpchi/.emacs.d/elpa/org-20210929/org-tempo hides c:/emacs/share/emacs/30.1/lisp/org/org-tempo c:/users/dpchi/.emacs.d/elpa/org-20210929/org-table hides c:/emacs/share/emacs/30.1/lisp/org/org-table c:/users/dpchi/.emacs.d/elpa/org-20210929/org-src hides c:/emacs/share/emacs/30.1/lisp/org/org-src c:/users/dpchi/.emacs.d/elpa/org-20210929/org-refile hides c:/emacs/share/emacs/30.1/lisp/org/org-refile c:/users/dpchi/.emacs.d/elpa/org-20210929/org-protocol hides c:/emacs/share/emacs/30.1/lisp/org/org-protocol c:/users/dpchi/.emacs.d/elpa/org-20210929/org-plot hides c:/emacs/share/emacs/30.1/lisp/org/org-plot c:/users/dpchi/.emacs.d/elpa/org-20210929/org-pcomplete hides c:/emacs/share/emacs/30.1/lisp/org/org-pcomplete c:/users/dpchi/.emacs.d/elpa/org-20210929/org-num hides c:/emacs/share/emacs/30.1/lisp/org/org-num c:/users/dpchi/.emacs.d/elpa/org-20210929/org-mouse hides c:/emacs/share/emacs/30.1/lisp/org/org-mouse c:/users/dpchi/.emacs.d/elpa/org-20210929/org-mobile hides c:/emacs/share/emacs/30.1/lisp/org/org-mobile c:/users/dpchi/.emacs.d/elpa/org-20210929/org-macs hides c:/emacs/share/emacs/30.1/lisp/org/org-macs c:/users/dpchi/.emacs.d/elpa/org-20210929/org-macro hides c:/emacs/share/emacs/30.1/lisp/org/org-macro c:/users/dpchi/.emacs.d/elpa/org-20210929/org-loaddefs hides c:/emacs/share/emacs/30.1/lisp/org/org-loaddefs c:/users/dpchi/.emacs.d/elpa/org-20210929/org-list hides c:/emacs/share/emacs/30.1/lisp/org/org-list c:/users/dpchi/.emacs.d/elpa/org-20210929/org-lint hides c:/emacs/share/emacs/30.1/lisp/org/org-lint c:/users/dpchi/.emacs.d/elpa/org-20210929/org-keys hides c:/emacs/share/emacs/30.1/lisp/org/org-keys c:/users/dpchi/.emacs.d/elpa/org-20210929/org-inlinetask hides c:/emacs/share/emacs/30.1/lisp/org/org-inlinetask c:/users/dpchi/.emacs.d/elpa/org-20210929/org-indent hides c:/emacs/share/emacs/30.1/lisp/org/org-indent c:/users/dpchi/.emacs.d/elpa/org-20210929/org-id hides c:/emacs/share/emacs/30.1/lisp/org/org-id c:/users/dpchi/.emacs.d/elpa/org-20210929/org-habit hides c:/emacs/share/emacs/30.1/lisp/org/org-habit c:/users/dpchi/.emacs.d/elpa/org-20210929/org-goto hides c:/emacs/share/emacs/30.1/lisp/org/org-goto c:/users/dpchi/.emacs.d/elpa/org-20210929/org-footnote hides c:/emacs/share/emacs/30.1/lisp/org/org-footnote c:/users/dpchi/.emacs.d/elpa/org-20210929/org-feed hides c:/emacs/share/emacs/30.1/lisp/org/org-feed c:/users/dpchi/.emacs.d/elpa/org-20210929/org-faces hides c:/emacs/share/emacs/30.1/lisp/org/org-faces c:/users/dpchi/.emacs.d/elpa/org-20210929/org-entities hides c:/emacs/share/emacs/30.1/lisp/org/org-entities c:/users/dpchi/.emacs.d/elpa/org-20210929/org-element hides c:/emacs/share/emacs/30.1/lisp/org/org-element c:/users/dpchi/.emacs.d/elpa/org-20210929/org-duration hides c:/emacs/share/emacs/30.1/lisp/org/org-duration c:/users/dpchi/.emacs.d/elpa/org-20210929/org-datetree hides c:/emacs/share/emacs/30.1/lisp/org/org-datetree c:/users/dpchi/.emacs.d/elpa/org-20210929/org-ctags hides c:/emacs/share/emacs/30.1/lisp/org/org-ctags c:/users/dpchi/.emacs.d/elpa/org-20210929/org-crypt hides c:/emacs/share/emacs/30.1/lisp/org/org-crypt c:/users/dpchi/.emacs.d/elpa/org-20210929/org-compat hides c:/emacs/share/emacs/30.1/lisp/org/org-compat c:/users/dpchi/.emacs.d/elpa/org-20210929/org-colview hides c:/emacs/share/emacs/30.1/lisp/org/org-colview c:/users/dpchi/.emacs.d/elpa/org-20210929/org-clock hides c:/emacs/share/emacs/30.1/lisp/org/org-clock c:/users/dpchi/.emacs.d/elpa/org-20210929/org-capture hides c:/emacs/share/emacs/30.1/lisp/org/org-capture c:/users/dpchi/.emacs.d/elpa/org-20210929/org-attach hides c:/emacs/share/emacs/30.1/lisp/org/org-attach c:/users/dpchi/.emacs.d/elpa/org-20210929/org-attach-git hides c:/emacs/share/emacs/30.1/lisp/org/org-attach-git c:/users/dpchi/.emacs.d/elpa/org-20210929/org-archive hides c:/emacs/share/emacs/30.1/lisp/org/org-archive c:/users/dpchi/.emacs.d/elpa/org-20210929/org-agenda hides c:/emacs/share/emacs/30.1/lisp/org/org-agenda c:/users/dpchi/.emacs.d/elpa/org-20210929/ol hides c:/emacs/share/emacs/30.1/lisp/org/ol c:/users/dpchi/.emacs.d/elpa/org-20210929/ol-w3m hides c:/emacs/share/emacs/30.1/lisp/org/ol-w3m c:/users/dpchi/.emacs.d/elpa/org-20210929/ol-rmail hides c:/emacs/share/emacs/30.1/lisp/org/ol-rmail c:/users/dpchi/.emacs.d/elpa/org-20210929/ol-mhe hides c:/emacs/share/emacs/30.1/lisp/org/ol-mhe c:/users/dpchi/.emacs.d/elpa/org-20210929/ol-irc hides c:/emacs/share/emacs/30.1/lisp/org/ol-irc c:/users/dpchi/.emacs.d/elpa/org-20210929/ol-info hides c:/emacs/share/emacs/30.1/lisp/org/ol-info c:/users/dpchi/.emacs.d/elpa/org-20210929/ol-gnus hides c:/emacs/share/emacs/30.1/lisp/org/ol-gnus c:/users/dpchi/.emacs.d/elpa/org-20210929/ol-eww hides c:/emacs/share/emacs/30.1/lisp/org/ol-eww c:/users/dpchi/.emacs.d/elpa/org-20210929/ol-eshell hides c:/emacs/share/emacs/30.1/lisp/org/ol-eshell c:/users/dpchi/.emacs.d/elpa/org-20210929/ol-doi hides c:/emacs/share/emacs/30.1/lisp/org/ol-doi c:/users/dpchi/.emacs.d/elpa/org-20210929/ol-docview hides c:/emacs/share/emacs/30.1/lisp/org/ol-docview c:/users/dpchi/.emacs.d/elpa/org-20210929/ol-bibtex hides c:/emacs/share/emacs/30.1/lisp/org/ol-bibtex c:/users/dpchi/.emacs.d/elpa/org-20210929/ol-bbdb hides c:/emacs/share/emacs/30.1/lisp/org/ol-bbdb c:/users/dpchi/.emacs.d/elpa/org-20210929/oc hides c:/emacs/share/emacs/30.1/lisp/org/oc c:/users/dpchi/.emacs.d/elpa/org-20210929/oc-natbib hides c:/emacs/share/emacs/30.1/lisp/org/oc-natbib c:/users/dpchi/.emacs.d/elpa/org-20210929/oc-csl hides c:/emacs/share/emacs/30.1/lisp/org/oc-csl c:/users/dpchi/.emacs.d/elpa/org-20210929/oc-biblatex hides c:/emacs/share/emacs/30.1/lisp/org/oc-biblatex c:/users/dpchi/.emacs.d/elpa/org-20210929/oc-basic hides c:/emacs/share/emacs/30.1/lisp/org/oc-basic c:/users/dpchi/.emacs.d/elpa/org-20210929/ob hides c:/emacs/share/emacs/30.1/lisp/org/ob c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-tangle hides c:/emacs/share/emacs/30.1/lisp/org/ob-tangle c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-table hides c:/emacs/share/emacs/30.1/lisp/org/ob-table c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-sqlite hides c:/emacs/share/emacs/30.1/lisp/org/ob-sqlite c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-sql hides c:/emacs/share/emacs/30.1/lisp/org/ob-sql c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-shell hides c:/emacs/share/emacs/30.1/lisp/org/ob-shell c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-sed hides c:/emacs/share/emacs/30.1/lisp/org/ob-sed c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-screen hides c:/emacs/share/emacs/30.1/lisp/org/ob-screen c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-scheme hides c:/emacs/share/emacs/30.1/lisp/org/ob-scheme c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-sass hides c:/emacs/share/emacs/30.1/lisp/org/ob-sass c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-ruby hides c:/emacs/share/emacs/30.1/lisp/org/ob-ruby c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-ref hides c:/emacs/share/emacs/30.1/lisp/org/ob-ref c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-R hides c:/emacs/share/emacs/30.1/lisp/org/ob-R c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-python hides c:/emacs/share/emacs/30.1/lisp/org/ob-python c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-processing hides c:/emacs/share/emacs/30.1/lisp/org/ob-processing c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-plantuml hides c:/emacs/share/emacs/30.1/lisp/org/ob-plantuml c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-perl hides c:/emacs/share/emacs/30.1/lisp/org/ob-perl c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-org hides c:/emacs/share/emacs/30.1/lisp/org/ob-org c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-octave hides c:/emacs/share/emacs/30.1/lisp/org/ob-octave c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-ocaml hides c:/emacs/share/emacs/30.1/lisp/org/ob-ocaml c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-maxima hides c:/emacs/share/emacs/30.1/lisp/org/ob-maxima c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-matlab hides c:/emacs/share/emacs/30.1/lisp/org/ob-matlab c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-makefile hides c:/emacs/share/emacs/30.1/lisp/org/ob-makefile c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-lua hides c:/emacs/share/emacs/30.1/lisp/org/ob-lua c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-lob hides c:/emacs/share/emacs/30.1/lisp/org/ob-lob c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-lisp hides c:/emacs/share/emacs/30.1/lisp/org/ob-lisp c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-lilypond hides c:/emacs/share/emacs/30.1/lisp/org/ob-lilypond c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-latex hides c:/emacs/share/emacs/30.1/lisp/org/ob-latex c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-julia hides c:/emacs/share/emacs/30.1/lisp/org/ob-julia c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-js hides c:/emacs/share/emacs/30.1/lisp/org/ob-js c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-java hides c:/emacs/share/emacs/30.1/lisp/org/ob-java c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-haskell hides c:/emacs/share/emacs/30.1/lisp/org/ob-haskell c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-groovy hides c:/emacs/share/emacs/30.1/lisp/org/ob-groovy c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-gnuplot hides c:/emacs/share/emacs/30.1/lisp/org/ob-gnuplot c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-fortran hides c:/emacs/share/emacs/30.1/lisp/org/ob-fortran c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-forth hides c:/emacs/share/emacs/30.1/lisp/org/ob-forth c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-exp hides c:/emacs/share/emacs/30.1/lisp/org/ob-exp c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-eval hides c:/emacs/share/emacs/30.1/lisp/org/ob-eval c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-eshell hides c:/emacs/share/emacs/30.1/lisp/org/ob-eshell c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-emacs-lisp hides c:/emacs/share/emacs/30.1/lisp/org/ob-emacs-lisp c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-dot hides c:/emacs/share/emacs/30.1/lisp/org/ob-dot c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-ditaa hides c:/emacs/share/emacs/30.1/lisp/org/ob-ditaa c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-css hides c:/emacs/share/emacs/30.1/lisp/org/ob-css c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-core hides c:/emacs/share/emacs/30.1/lisp/org/ob-core c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-comint hides c:/emacs/share/emacs/30.1/lisp/org/ob-comint c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-clojure hides c:/emacs/share/emacs/30.1/lisp/org/ob-clojure c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-calc hides c:/emacs/share/emacs/30.1/lisp/org/ob-calc c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-C hides c:/emacs/share/emacs/30.1/lisp/org/ob-C c:/users/dpchi/.emacs.d/elpa/org-20210929/ob-awk hides c:/emacs/share/emacs/30.1/lisp/org/ob-awk c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/trampver hides c:/emacs/share/emacs/30.1/lisp/net/trampver c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp hides c:/emacs/share/emacs/30.1/lisp/net/tramp c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-uu hides c:/emacs/share/emacs/30.1/lisp/net/tramp-uu c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-sudoedit hides c:/emacs/share/emacs/30.1/lisp/net/tramp-sudoedit c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-sshfs hides c:/emacs/share/emacs/30.1/lisp/net/tramp-sshfs c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-smb hides c:/emacs/share/emacs/30.1/lisp/net/tramp-smb c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-sh hides c:/emacs/share/emacs/30.1/lisp/net/tramp-sh c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-rclone hides c:/emacs/share/emacs/30.1/lisp/net/tramp-rclone c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-message hides c:/emacs/share/emacs/30.1/lisp/net/tramp-message c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-loaddefs hides c:/emacs/share/emacs/30.1/lisp/net/tramp-loaddefs c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-integration hides c:/emacs/share/emacs/30.1/lisp/net/tramp-integration c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-gvfs hides c:/emacs/share/emacs/30.1/lisp/net/tramp-gvfs c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-fuse hides c:/emacs/share/emacs/30.1/lisp/net/tramp-fuse c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-ftp hides c:/emacs/share/emacs/30.1/lisp/net/tramp-ftp c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-crypt hides c:/emacs/share/emacs/30.1/lisp/net/tramp-crypt c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-container hides c:/emacs/share/emacs/30.1/lisp/net/tramp-container c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-compat hides c:/emacs/share/emacs/30.1/lisp/net/tramp-compat c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-cmds hides c:/emacs/share/emacs/30.1/lisp/net/tramp-cmds c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-cache hides c:/emacs/share/emacs/30.1/lisp/net/tramp-cache c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-archive hides c:/emacs/share/emacs/30.1/lisp/net/tramp-archive c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-androidsu hides c:/emacs/share/emacs/30.1/lisp/net/tramp-androidsu c:/users/dpchi/.emacs.d/elpa/tramp-2.7.2.3.1/tramp-adb hides c:/emacs/share/emacs/30.1/lisp/net/tramp-adb c:/users/dpchi/.emacs.d/elpa/track-changes-1.4/track-changes hides c:/emacs/share/emacs/30.1/lisp/emacs-lisp/track-changes c:/users/dpchi/.emacs.d/elpa/faceup-20170925.1946/faceup hides c:/emacs/share/emacs/30.1/lisp/emacs-lisp/faceup c:/emacs/share/emacs/30.1/lisp/emacs-lisp/compat hides c:/users/dpchi/.emacs.d/elpa/compat-30.1.0.0/compat c:/emacs/share/emacs/30.1/lisp/emacs-lisp/eldoc hides c:/users/dpchi/.emacs.d/elpa/eldoc-1.15.0/eldoc c:/emacs/share/emacs/30.1/lisp/erc/erc hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc c:/emacs/share/emacs/30.1/lisp/erc/erc-xdcc hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-xdcc c:/emacs/share/emacs/30.1/lisp/erc/erc-truncate hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-truncate c:/emacs/share/emacs/30.1/lisp/erc/erc-track hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-track c:/emacs/share/emacs/30.1/lisp/erc/erc-status-sidebar hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-status-sidebar c:/emacs/share/emacs/30.1/lisp/erc/erc-stamp hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-stamp c:/emacs/share/emacs/30.1/lisp/erc/erc-spelling hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-spelling c:/emacs/share/emacs/30.1/lisp/erc/erc-speedbar hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-speedbar c:/emacs/share/emacs/30.1/lisp/erc/erc-sound hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-sound c:/emacs/share/emacs/30.1/lisp/erc/erc-services hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-services c:/emacs/share/emacs/30.1/lisp/erc/erc-sasl hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-sasl c:/emacs/share/emacs/30.1/lisp/erc/erc-ring hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-ring c:/emacs/share/emacs/30.1/lisp/erc/erc-replace hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-replace c:/emacs/share/emacs/30.1/lisp/erc/erc-pcomplete hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-pcomplete c:/emacs/share/emacs/30.1/lisp/erc/erc-page hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-page c:/emacs/share/emacs/30.1/lisp/erc/erc-notify hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-notify c:/emacs/share/emacs/30.1/lisp/erc/erc-nicks hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-nicks c:/emacs/share/emacs/30.1/lisp/erc/erc-networks hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-networks c:/emacs/share/emacs/30.1/lisp/erc/erc-netsplit hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-netsplit c:/emacs/share/emacs/30.1/lisp/erc/erc-menu hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-menu c:/emacs/share/emacs/30.1/lisp/erc/erc-match hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-match c:/emacs/share/emacs/30.1/lisp/erc/erc-log hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-log c:/emacs/share/emacs/30.1/lisp/erc/erc-loaddefs hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-loaddefs c:/emacs/share/emacs/30.1/lisp/erc/erc-list hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-list c:/emacs/share/emacs/30.1/lisp/erc/erc-lang hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-lang c:/emacs/share/emacs/30.1/lisp/erc/erc-join hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-join c:/emacs/share/emacs/30.1/lisp/erc/erc-imenu hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-imenu c:/emacs/share/emacs/30.1/lisp/erc/erc-identd hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-identd c:/emacs/share/emacs/30.1/lisp/erc/erc-ibuffer hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-ibuffer c:/emacs/share/emacs/30.1/lisp/erc/erc-goodies hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-goodies c:/emacs/share/emacs/30.1/lisp/erc/erc-fill hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-fill c:/emacs/share/emacs/30.1/lisp/erc/erc-ezbounce hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-ezbounce c:/emacs/share/emacs/30.1/lisp/erc/erc-desktop-notifications hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-desktop-notifications c:/emacs/share/emacs/30.1/lisp/erc/erc-dcc hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-dcc c:/emacs/share/emacs/30.1/lisp/erc/erc-compat hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-compat c:/emacs/share/emacs/30.1/lisp/erc/erc-common hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-common c:/emacs/share/emacs/30.1/lisp/erc/erc-capab hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-capab c:/emacs/share/emacs/30.1/lisp/erc/erc-button hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-button c:/emacs/share/emacs/30.1/lisp/erc/erc-backend hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-backend c:/emacs/share/emacs/30.1/lisp/erc/erc-autoaway hides c:/users/dpchi/.emacs.d/elpa/erc-5.6/erc-autoaway c:/emacs/share/emacs/30.1/lisp/jsonrpc hides c:/users/dpchi/.emacs.d/elpa/jsonrpc-1.0.25/jsonrpc c:/emacs/share/emacs/30.1/lisp/progmodes/project hides c:/users/dpchi/.emacs.d/elpa/project-0.11.1/project c:/emacs/share/emacs/30.1/lisp/emacs-lisp/seq hides c:/users/dpchi/.emacs.d/elpa/seq-2.24/seq c:/emacs/share/emacs/30.1/lisp/net/soap-inspect hides c:/users/dpchi/.emacs.d/elpa/soap-client-3.2.3/soap-inspect c:/emacs/share/emacs/30.1/lisp/net/soap-client hides c:/users/dpchi/.emacs.d/elpa/soap-client-3.2.3/soap-client c:/emacs/share/emacs/30.1/lisp/use-package/use-package hides c:/users/dpchi/.emacs.d/elpa/use-package-2.4.6/use-package c:/emacs/share/emacs/30.1/lisp/use-package/use-package-lint hides c:/users/dpchi/.emacs.d/elpa/use-package-2.4.6/use-package-lint c:/emacs/share/emacs/30.1/lisp/use-package/use-package-jump hides c:/users/dpchi/.emacs.d/elpa/use-package-2.4.6/use-package-jump c:/emacs/share/emacs/30.1/lisp/use-package/use-package-ensure hides c:/users/dpchi/.emacs.d/elpa/use-package-2.4.6/use-package-ensure c:/emacs/share/emacs/30.1/lisp/use-package/use-package-ensure-system-package hides c:/users/dpchi/.emacs.d/elpa/use-package-2.4.6/use-package-ensure-system-package c:/emacs/share/emacs/30.1/lisp/use-package/use-package-diminish hides c:/users/dpchi/.emacs.d/elpa/use-package-2.4.6/use-package-diminish c:/emacs/share/emacs/30.1/lisp/use-package/use-package-delight hides c:/users/dpchi/.emacs.d/elpa/use-package-2.4.6/use-package-delight c:/emacs/share/emacs/30.1/lisp/use-package/use-package-core hides c:/users/dpchi/.emacs.d/elpa/use-package-2.4.6/use-package-core c:/emacs/share/emacs/30.1/lisp/use-package/use-package-bind-key hides c:/users/dpchi/.emacs.d/elpa/use-package-2.4.6/use-package-bind-key c:/emacs/share/emacs/30.1/lisp/progmodes/xref hides c:/users/dpchi/.emacs.d/elpa/xref-1.7.0/xref Features: (shadow sort mail-extr emacsbug rfc-mode x509-mode x509-asn1-mode aidermacs aidermacs-output ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util aidermacs-models aidermacs-backends aidermacs-backend-comint markdown-mode find-dired tramp trampver tramp-integration files-x tramp-message tramp-compat xdg parse-time iso8601 tramp-loaddefs cl-print completion apheleia apheleia-rcs apheleia-dp apheleia-formatters apheleia-utils apheleia-log apheleia-formatter-context tabify time-stamp mule-util misearch multi-isearch shortdoc comp-common help-fns radix-tree vc-git vc-dispatcher go-mode find-file ffap magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode git-commit log-edit message sendmail yank-media puny dino-dired-fixups dired-aux dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert time-date magit-margin magit-transient magit-process with-editor server magit-mode transient benchmark magit-git magit-base magit-section cursor-sensor crm llama default-text-scale gptel-gemini dpc-gemini gptel gptel-openai wsd-mode wsd-flycheck company-wsdmode ob-wsdmode ob ob-tangle ol org-src ob-ref ob-lob ob-table ob-exp ob-comint ob-core ob-eval org-keys oc org-compat org-macs format-spec wsd-core yasnippet electric-operator cc-mode cc-fonts cc-guess cc-menus cc-cmds company-box company-box-icons company-box-doc company-box-util msgu frame-local company-oddmuse company-keywords company-etags etags fileloop generator company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-capf company-cmake company-semantic company-template company-bbdb company indent-bars face-remap noutline outline color highlight-chars display-line-numbers autorevert recentf tree-widget cc-styles cc-align cc-engine cc-vars cc-defs dtrt-indent cus-edit cus-load wid-edit skeleton httpget dpc-jsonnet-mode-fixups jsonnet-mode smie powershell advice shell pcomplete eglot external-completion jsonrpc xref flymake thingatpt project diff diff-mode track-changes ert pp ewoc debug backtrace filenotify warnings compile text-property-search comint ansi-osc ring imenu flycheck ansi-color find-func marginalia compat icomplete edmacro kmacro use-package-bind-key bind-key hl-line finder-inf dino-utility memoize dash dpc-sys-windows-nt s cl-extra help-mode use-package-ensure use-package-core aidermacs-autoloads apheleia-autoloads easy-mmode async-autoloads caddyfile-mode-autoloads chatgpt-shell-autoloads command-log-mode-autoloads company-box-autoloads company-autoloads default-text-scale-autoloads eglot-autoloads eglot-booster-autoloads electric-operator-autoloads expand-region-autoloads f-autoloads faceup-autoloads flycheck-autoloads flymake-autoloads frame-local-autoloads gnu-elpa-keyring-update-autoloads go-mode-autoloads google-gemini-autoloads gptel-autoloads ht-autoloads idlwave-autoloads indent-bars-autoloads json-mode-autoloads json-snatcher-autoloads jsonnet-mode-autoloads logito-autoloads loop-autoloads lv-autoloads magit-autoloads pcase magit-section-autoloads llama-autoloads marginalia-autoloads markdown-mode-autoloads memoize-autoloads msgu-autoloads multiple-cursors-autoloads org-autoloads path-helper-autoloads popup-autoloads powershell-autoloads protobuf-mode-autoloads rego-mode-autoloads reformatter-autoloads request-autoloads rfc-mode-autoloads rg-autoloads s-autoloads shell-maker-autoloads spinner-autoloads sr-speedbar-autoloads tblui-autoloads tablist-autoloads magit-popup-autoloads track-changes-autoloads tramp-autoloads rx transient-autoloads typescript-mode-autoloads verilog-mode-autoloads wgrep-autoloads with-editor-autoloads wsd-mode-autoloads x509-mode-autoloads yaml-mode-autoloads yasnippet-autoloads yaxception-autoloads info dash-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel touch-screen dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads w32notify w32 lcms2 multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 672435 122634) (symbols 48 39095 1) (strings 32 196605 7313) (string-bytes 1 5493821) (vectors 16 73230) (vector-slots 8 1545967 128424) (floats 8 462 15256) (intervals 56 9860 577) (buffers 992 21))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.