GNU bug report logs - #47127
27.1; ido file completion sorting should respect ido-case-fold, maybe?

Previous Next

Package: emacs;

Reported by: "Ryan C. Thompson" <rct <at> thompsonclan.org>

Date: Sat, 13 Mar 2021 21:58:02 UTC

Severity: normal

Found in version 27.1

Fixed in version 29.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 47127 in the body.
You can then email your comments to 47127 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#47127; Package emacs. (Sat, 13 Mar 2021 21:58:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Ryan C. Thompson" <rct <at> thompsonclan.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 13 Mar 2021 21:58:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: "Ryan C. Thompson" <rct <at> thompsonclan.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 27.1; ido file completion sorting should respect ido-case-fold, maybe?
Date: Sat, 13 Mar 2021 16:57:03 -0500
When ido-case-fold is non-nil, ido allows "abc.txt" to match "AbC.TxT", 
for example. However, ido-case-fold does not affect the sort order of 
the lexically sorted completions. For example, if the directory contains 
4 files named "a", "B", "c", and "D", then ido will always sort them 
lexically as "B", "D", "a", "c", regardless of the value of 
ido-case-fold. I would argue that if ido considers "a" and "A" 
equivalent for the purposes of completion, then it should also consider 
them equivalent for the purposes of sorting, unless 2 file names differ 
*only* in case, in which case it should fall back to case-sensitive sorting.

;; Returns nil, as expected
(let ((ido-case-fold nil))
  (ido-file-lessp "a" "B"))

;; Should return t, but currently returns nil
(let ((ido-case-fold t))
  (ido-file-lessp "a" "B"))

;; Should still return t because case is the only difference
(let ((ido-case-fold t))
  (ido-file-lessp "A" "a"))

At least, this is what makes sense to me. If people agree, I'd be happy 
to code this up as a patch and send it. For what it's worth, the 
following advice implements the above behavior:

(define-advice ido-file-lessp (:around (orig-fun &rest args) 
respect-ido-case-fold)
  "Make sure that Ido file sorting respects `ido-case-fold'."
  (if ido-case-fold
      (let ((args-lower (mapcar #'downcase args)))
        ;; Compare case-insensitively, unless the file names differ
        ;; only in case.
        (if (apply #'string= args-lower)
            (apply orig-fun args)
          (apply orig-fun args-lower)))
    (apply orig-fun args)))

(define-advice ido-file-extension-lessp (:around (orig-fun &rest args) 
respect-ido-case-fold)
  "Make sure that Ido file sorting respects `ido-case-fold'."
  (if ido-case-fold
      (let ((args-lower (mapcar #'downcase args)))
        ;; Compare case-insensitively, unless the file names differ
        ;; only in case.
        (if (apply #'string= args-lower)
            (apply orig-fun args)
          (apply orig-fun args-lower)))
    (apply orig-fun args)))


In GNU Emacs 27.1 (build 1, x86_64-apple-darwin19.6.0, NS appkit-1894.60 
Version 10.15.7 (Build 19H114))
of 2021-02-05 built on urania.local
Windowing system distributor 'Apple', version 10.3.1894
System Description: Mac OS X 10.15.7

Recent messages:
Error during redisplay: (jit-lock-function 96817) signaled (user-error 
"Cannot move further down")
Saving file /Users/ryan/.emacs.d/config.org...
Wrote 
/Users/ryan/.emacs.d/persistence/undo-tree/.!Users!ryan!.emacs.d!config.org.~undo-tree~
Wrote /Users/ryan/.emacs.d/config.org
Mark saved where search started
Mark set
Quit [2 times]
QuitError during redisplay: (eval (list (sml-modeline-create))) signaled 
(args-out-of-range 7245 7604)
Type C-x 1 to delete the help window.
Quit
Quit
Configured using:
'configure --disable-dependency-tracking --disable-silent-rules
--enable-locallisppath=/usr/local/share/emacs/site-lisp
--infodir=/usr/local/Cellar/emacs-plus <at> 27/27.1/share/info/emacs
--prefix=/usr/local/Cellar/emacs-plus <at> 27/27.1 --with-xml2 --with-gnutls
--without-dbus --with-imagemagick --with-modules --with-rsvg --with-ns
--disable-ns-self-contained'

Configured features:
RSVG IMAGEMAGICK GLIB NOTIFY KQUEUE ACL GNUTLS LIBXML2
TOOLKIT_SCROLL_BARS XIM NS MODULES THREADS JSON PDUMPER LCMS2 GMP

Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix

Major mode: Org

Minor modes in effect:
global-magit-file-mode: t
magit-file-mode: t
magit-auto-revert-mode: t
global-git-commit-mode: t
async-bytecomp-package-mode: t
recentf-mode: t
auto-revert-mode: t
winner-mode: t
which-key-mode: t
which-function-mode: t
savehist-mode: t
save-place-mode: t
minibuffer-depth-indicate-mode: t
midnight-mode: t
global-hl-line-mode: t
desktop-save-mode: t
delete-selection-mode: t
ws-butler-global-mode: t
ws-butler-mode: t
volatile-highlights-mode: t
global-undo-tree-mode: t
undo-tree-mode: t
sml-modeline-mode: t
selectrum-prescient-mode: t
prescient-persist-mode: t
global-pointback-mode: t
pointback-mode: t
org-superstar-mode: t
mode-line-bell-mode: t
mac-pseudo-daemon-mode: t
imagex-auto-adjust-mode: t
ido-yes-or-no-mode: t
ido-ubiquitous-mode: t
minibuffer-electric-default-mode: t
ido-everywhere: t
ido-complete-space-or-hyphen-mode: t
highlight-stages-global-mode: t
highlight-stages-mode: t
global-git-gutter-mode: t
git-gutter-mode: t
shell-dirtrack-mode: t
editorconfig-mode: t
beacon-mode: t
bar-cursor-mode: t
autopair-global-mode: t
autopair-mode: t
show-paren-mode: t
auto-dim-other-buffers-mode: t
global-auto-complete-mode: t
global-anzu-mode: t
anzu-mode: t
amx-mode: t
override-global-mode: t
straight-use-package-mode: t
straight-package-neutering-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-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
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t

Load-path shadows:
/Users/ryan/.emacs.d/straight/build/flycheck-elsa/Elsafile hides 
/Users/ryan/.emacs.d/straight/build/elsa/Elsafile
/Users/ryan/.emacs.d/straight/build/org/ob-stan hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-stan
/Users/ryan/.emacs.d/straight/build/org/ob-comint hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-comint
/Users/ryan/.emacs.d/straight/build/org/ob-exp hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-exp
/Users/ryan/.emacs.d/straight/build/org/org-ctags hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-ctags
/Users/ryan/.emacs.d/straight/build/org/ob-emacs-lisp hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-emacs-lisp
/Users/ryan/.emacs.d/straight/build/org/ox-texinfo hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-texinfo
/Users/ryan/.emacs.d/straight/build/org/ol-irc hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-irc
/Users/ryan/.emacs.d/straight/build/org/ob hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob
/Users/ryan/.emacs.d/straight/build/org/org-refile hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-refile
/Users/ryan/.emacs.d/straight/build/org/org-num hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-num
/Users/ryan/.emacs.d/straight/build/org/ol-mhe hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-mhe
/Users/ryan/.emacs.d/straight/build/org/ob-shell hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-shell
/Users/ryan/.emacs.d/straight/build/org/org-attach hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-attach
/Users/ryan/.emacs.d/straight/build/org/ob-C hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-C
/Users/ryan/.emacs.d/straight/build/org/org-macs hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-macs
/Users/ryan/.emacs.d/straight/build/org/org-entities hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-entities
/Users/ryan/.emacs.d/straight/build/org/ob-dot hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-dot
/Users/ryan/.emacs.d/straight/build/org/ob-sql hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-sql
/Users/ryan/.emacs.d/straight/build/org/ol-eww hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-eww
/Users/ryan/.emacs.d/straight/build/org/org-datetree hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-datetree
/Users/ryan/.emacs.d/straight/build/org/org-macro hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-macro
/Users/ryan/.emacs.d/straight/build/org/ob-eval hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-eval
/Users/ryan/.emacs.d/straight/build/org/ob-haskell hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-haskell
/Users/ryan/.emacs.d/straight/build/org/ob-asymptote hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-asymptote
/Users/ryan/.emacs.d/straight/build/org/ob-abc hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-abc
/Users/ryan/.emacs.d/straight/build/org/ox-org hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-org
/Users/ryan/.emacs.d/straight/build/org/ol-rmail hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-rmail
/Users/ryan/.emacs.d/straight/build/org/ob-awk hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-awk
/Users/ryan/.emacs.d/straight/build/org/ob-groovy hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-groovy
/Users/ryan/.emacs.d/straight/build/org/ob-shen hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-shen
/Users/ryan/.emacs.d/straight/build/org/ox-icalendar hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-icalendar
/Users/ryan/.emacs.d/straight/build/org/ob-octave hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-octave
/Users/ryan/.emacs.d/straight/build/org/ob-scheme hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-scheme
/Users/ryan/.emacs.d/straight/build/org/org-mobile hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-mobile
/Users/ryan/.emacs.d/straight/build/org/ob-processing hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-processing
/Users/ryan/.emacs.d/straight/build/org/ob-ledger hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ledger
/Users/ryan/.emacs.d/straight/build/org/ob-picolisp hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-picolisp
/Users/ryan/.emacs.d/straight/build/org/org-colview hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-colview
/Users/ryan/.emacs.d/straight/build/org/ob-R hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-R
/Users/ryan/.emacs.d/straight/build/org/org-table hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-table
/Users/ryan/.emacs.d/straight/build/org/ox-html hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-html
/Users/ryan/.emacs.d/straight/build/org/ob-fortran hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-fortran
/Users/ryan/.emacs.d/straight/build/org/ol hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol
/Users/ryan/.emacs.d/straight/build/org/ob-plantuml hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-plantuml
/Users/ryan/.emacs.d/straight/build/org/ol-docview hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-docview
/Users/ryan/.emacs.d/straight/build/org/ob-perl hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-perl
/Users/ryan/.emacs.d/straight/build/org/ob-sqlite hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-sqlite
/Users/ryan/.emacs.d/straight/build/org/ob-sed hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-sed
/Users/ryan/.emacs.d/straight/build/org/ob-ditaa hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ditaa
/Users/ryan/.emacs.d/straight/build/org/ob-ruby hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ruby
/Users/ryan/.emacs.d/straight/build/org/org-habit hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-habit
/Users/ryan/.emacs.d/straight/build/org/ol-gnus hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-gnus
/Users/ryan/.emacs.d/straight/build/org/ob-screen hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-screen
/Users/ryan/.emacs.d/straight/build/org/org-mouse hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-mouse
/Users/ryan/.emacs.d/straight/build/org/ob-css hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-css
/Users/ryan/.emacs.d/straight/build/org/org-inlinetask hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-inlinetask
/Users/ryan/.emacs.d/straight/build/org/ob-lisp hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-lisp
/Users/ryan/.emacs.d/straight/build/org/ol-eshell hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-eshell
/Users/ryan/.emacs.d/straight/build/org/org-pcomplete hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-pcomplete
/Users/ryan/.emacs.d/straight/build/org/org-lint hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-lint
/Users/ryan/.emacs.d/straight/build/org/org-id hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-id
/Users/ryan/.emacs.d/straight/build/org/ob-vala hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-vala
/Users/ryan/.emacs.d/straight/build/org/org-capture hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-capture
/Users/ryan/.emacs.d/straight/build/org/ob-sass hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-sass
/Users/ryan/.emacs.d/straight/build/org/ob-tangle hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-tangle
/Users/ryan/.emacs.d/straight/build/org/ob-calc hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-calc
/Users/ryan/.emacs.d/straight/build/org/ob-java hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-java
/Users/ryan/.emacs.d/straight/build/org/org-compat hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-compat
/Users/ryan/.emacs.d/straight/build/org/org-attach-git hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-attach-git
/Users/ryan/.emacs.d/straight/build/org/ox-beamer hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-beamer
/Users/ryan/.emacs.d/straight/build/org/ob-coq hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-coq
/Users/ryan/.emacs.d/straight/build/org/org-protocol hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-protocol
/Users/ryan/.emacs.d/straight/build/org/org-element hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-element
/Users/ryan/.emacs.d/straight/build/org/ob-lob hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-lob
/Users/ryan/.emacs.d/straight/build/org/ob-mscgen hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-mscgen
/Users/ryan/.emacs.d/straight/build/org/org-tempo hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-tempo
/Users/ryan/.emacs.d/straight/build/org/ob-python hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-python
/Users/ryan/.emacs.d/straight/build/org/ob-latex hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-latex
/Users/ryan/.emacs.d/straight/build/org/ol-w3m hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-w3m
/Users/ryan/.emacs.d/straight/build/org/org-agenda hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-agenda
/Users/ryan/.emacs.d/straight/build/org/ob-ocaml hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ocaml
/Users/ryan/.emacs.d/straight/build/org/ob-ref hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ref
/Users/ryan/.emacs.d/straight/build/org/ob-lilypond hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-lilypond
/Users/ryan/.emacs.d/straight/build/org/ob-table hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-table
/Users/ryan/.emacs.d/straight/build/org/ob-clojure hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-clojure
/Users/ryan/.emacs.d/straight/build/org/org-indent hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-indent
/Users/ryan/.emacs.d/straight/build/org/org-plot hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-plot
/Users/ryan/.emacs.d/straight/build/org/ox-latex hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-latex
/Users/ryan/.emacs.d/straight/build/org/org-src hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-src
/Users/ryan/.emacs.d/straight/build/org/org-duration hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-duration
/Users/ryan/.emacs.d/straight/build/org/ob-makefile hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-makefile
/Users/ryan/.emacs.d/straight/build/org/ol-info hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-info
/Users/ryan/.emacs.d/straight/build/org/ob-ebnf hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-ebnf
/Users/ryan/.emacs.d/straight/build/org/org-clock hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-clock
/Users/ryan/.emacs.d/straight/build/org/ob-forth hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-forth
/Users/ryan/.emacs.d/straight/build/org/ox-odt hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-odt
/Users/ryan/.emacs.d/straight/build/org/ox-publish hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-publish
/Users/ryan/.emacs.d/straight/build/org/org-archive hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-archive
/Users/ryan/.emacs.d/straight/build/org/ob-org hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-org
/Users/ryan/.emacs.d/straight/build/org/ob-lua hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-lua
/Users/ryan/.emacs.d/straight/build/org/org-keys hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-keys
/Users/ryan/.emacs.d/straight/build/org/ob-eshell hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-eshell
/Users/ryan/.emacs.d/straight/build/org/org-faces hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-faces
/Users/ryan/.emacs.d/straight/build/org/ox-man hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-man
/Users/ryan/.emacs.d/straight/build/org/org-list hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-list
/Users/ryan/.emacs.d/straight/build/org/ox-md hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-md
/Users/ryan/.emacs.d/straight/build/org/org-goto hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-goto
/Users/ryan/.emacs.d/straight/build/org/ol-bbdb hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-bbdb
/Users/ryan/.emacs.d/straight/build/org/org-loaddefs hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-loaddefs
/Users/ryan/.emacs.d/straight/build/org/org hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org
/Users/ryan/.emacs.d/straight/build/org/ol-bibtex hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ol-bibtex
/Users/ryan/.emacs.d/straight/build/org/ob-J hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-J
/Users/ryan/.emacs.d/straight/build/org/ox-ascii hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox-ascii
/Users/ryan/.emacs.d/straight/build/org/ob-matlab hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-matlab
/Users/ryan/.emacs.d/straight/build/org/ox hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ox
/Users/ryan/.emacs.d/straight/build/org/org-timer hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-timer
/Users/ryan/.emacs.d/straight/build/org/ob-core hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-core
/Users/ryan/.emacs.d/straight/build/org/org-feed hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-feed
/Users/ryan/.emacs.d/straight/build/org/ob-io hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-io
/Users/ryan/.emacs.d/straight/build/org/ob-gnuplot hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-gnuplot
/Users/ryan/.emacs.d/straight/build/org/ob-js hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-js
/Users/ryan/.emacs.d/straight/build/org/org-footnote hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-footnote
/Users/ryan/.emacs.d/straight/build/org/ob-maxima hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-maxima
/Users/ryan/.emacs.d/straight/build/org/ob-hledger hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/ob-hledger
/Users/ryan/.emacs.d/straight/build/org/org-install hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-install
/Users/ryan/.emacs.d/straight/build/org/org-crypt hides 
/Users/ryan/.emacs.d/straight/build/org-plus-contrib/org-crypt
/Users/ryan/.emacs.d/straight/build/async/dired-async hides 
/Users/ryan/.emacs.d/elpa/async-20200113.1745/dired-async
/Users/ryan/.emacs.d/straight/build/async/smtpmail-async hides 
/Users/ryan/.emacs.d/elpa/async-20200113.1745/smtpmail-async
/Users/ryan/.emacs.d/straight/build/async/async hides 
/Users/ryan/.emacs.d/elpa/async-20200113.1745/async
/Users/ryan/.emacs.d/straight/build/async/async-bytecomp hides 
/Users/ryan/.emacs.d/elpa/async-20200113.1745/async-bytecomp
/Users/ryan/.emacs.d/straight/build/async/async-autoloads hides 
/Users/ryan/.emacs.d/elpa/async-20200113.1745/async-autoloads
/Users/ryan/.emacs.d/straight/build/async/async-pkg hides 
/Users/ryan/.emacs.d/elpa/async-20200113.1745/async-pkg
/Users/ryan/.emacs.d/straight/build/popup/popup hides 
/Users/ryan/.emacs.d/elpa/popup-20160709.1429/popup
/Users/ryan/.emacs.d/straight/build/popup/popup-autoloads hides 
/Users/ryan/.emacs.d/elpa/popup-20160709.1429/popup-autoloads
/Users/ryan/.emacs.d/straight/build/org/ob-stan hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-stan
/Users/ryan/.emacs.d/straight/build/org/ob-exp hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-exp
/Users/ryan/.emacs.d/straight/build/org/ob-J hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-J
/Users/ryan/.emacs.d/straight/build/org/ob-emacs-lisp hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-emacs-lisp
/Users/ryan/.emacs.d/straight/build/org/ob-css hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-css
/Users/ryan/.emacs.d/straight/build/org/ob-lob hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-lob
/Users/ryan/.emacs.d/straight/build/org/ol-irc hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ol-irc
/Users/ryan/.emacs.d/straight/build/org/ob-forth hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-forth
/Users/ryan/.emacs.d/straight/build/org/org-macs hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-macs
/Users/ryan/.emacs.d/straight/build/org/ob hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob
/Users/ryan/.emacs.d/straight/build/org/ob-scheme hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-scheme
/Users/ryan/.emacs.d/straight/build/org/ox hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ox
/Users/ryan/.emacs.d/straight/build/org/ob-abc hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-abc
/Users/ryan/.emacs.d/straight/build/org/ob-C hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-C
/Users/ryan/.emacs.d/straight/build/org/org-capture hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-capture
/Users/ryan/.emacs.d/straight/build/org/ob-ref hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-ref
/Users/ryan/.emacs.d/straight/build/org/ob-clojure hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-clojure
/Users/ryan/.emacs.d/straight/build/org/org-mouse hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-mouse
/Users/ryan/.emacs.d/straight/build/org/ob-ledger hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-ledger
/Users/ryan/.emacs.d/straight/build/org/org-ctags hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-ctags
/Users/ryan/.emacs.d/straight/build/org/org-entities hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-entities
/Users/ryan/.emacs.d/straight/build/org/org-archive hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-archive
/Users/ryan/.emacs.d/straight/build/org/ob-screen hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-screen
/Users/ryan/.emacs.d/straight/build/org/ol-bibtex hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ol-bibtex
/Users/ryan/.emacs.d/straight/build/org/ob-haskell hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-haskell
/Users/ryan/.emacs.d/straight/build/org/ob-asymptote hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-asymptote
/Users/ryan/.emacs.d/straight/build/org/org-table hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-table
/Users/ryan/.emacs.d/straight/build/org/ol-eww hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ol-eww
/Users/ryan/.emacs.d/straight/build/org/ox-org hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ox-org
/Users/ryan/.emacs.d/straight/build/org/org-num hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-num
/Users/ryan/.emacs.d/straight/build/org/org-plot hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-plot
/Users/ryan/.emacs.d/straight/build/org/ol-rmail hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ol-rmail
/Users/ryan/.emacs.d/straight/build/org/ob-awk hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-awk
/Users/ryan/.emacs.d/straight/build/org/ob-groovy hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-groovy
/Users/ryan/.emacs.d/straight/build/org/ob-octave hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-octave
/Users/ryan/.emacs.d/straight/build/org/org-faces hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-faces
/Users/ryan/.emacs.d/straight/build/org/org-colview hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-colview
/Users/ryan/.emacs.d/straight/build/org/ob-R hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-R
/Users/ryan/.emacs.d/straight/build/org/org-timer hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-timer
/Users/ryan/.emacs.d/straight/build/org/ob-ebnf hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-ebnf
/Users/ryan/.emacs.d/straight/build/org/org-mobile hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-mobile
/Users/ryan/.emacs.d/straight/build/org/ob-fortran hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-fortran
/Users/ryan/.emacs.d/straight/build/org/ob-shell hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-shell
/Users/ryan/.emacs.d/straight/build/org/ob-perl hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-perl
/Users/ryan/.emacs.d/straight/build/org/ob-sqlite hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-sqlite
/Users/ryan/.emacs.d/straight/build/org/ob-sed hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-sed
/Users/ryan/.emacs.d/straight/build/org/org-list hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-list
/Users/ryan/.emacs.d/straight/build/org/ob-ruby hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-ruby
/Users/ryan/.emacs.d/straight/build/org/ob-eval hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-eval
/Users/ryan/.emacs.d/straight/build/org/org-habit hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-habit
/Users/ryan/.emacs.d/straight/build/org/org-clock hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-clock
/Users/ryan/.emacs.d/straight/build/org/org-goto hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-goto
/Users/ryan/.emacs.d/straight/build/org/ox-html hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ox-html
/Users/ryan/.emacs.d/straight/build/org/org-src hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-src
/Users/ryan/.emacs.d/straight/build/org/ob-lisp hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-lisp
/Users/ryan/.emacs.d/straight/build/org/ol-eshell hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ol-eshell
/Users/ryan/.emacs.d/straight/build/org/ob-ditaa hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-ditaa
/Users/ryan/.emacs.d/straight/build/org/org-pcomplete hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-pcomplete
/Users/ryan/.emacs.d/straight/build/org/org-lint hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-lint
/Users/ryan/.emacs.d/straight/build/org/ox-latex hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ox-latex
/Users/ryan/.emacs.d/straight/build/org/ob-sass hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-sass
/Users/ryan/.emacs.d/straight/build/org/ob-io hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-io
/Users/ryan/.emacs.d/straight/build/org/ob-tangle hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-tangle
/Users/ryan/.emacs.d/straight/build/org/ob-calc hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-calc
/Users/ryan/.emacs.d/straight/build/org/ob-java hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-java
/Users/ryan/.emacs.d/straight/build/org/ox-icalendar hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ox-icalendar
/Users/ryan/.emacs.d/straight/build/org/ol-mhe hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ol-mhe
/Users/ryan/.emacs.d/straight/build/org/org-attach-git hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-attach-git
/Users/ryan/.emacs.d/straight/build/org/ox-md hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ox-md
/Users/ryan/.emacs.d/straight/build/org/ox-beamer hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ox-beamer
/Users/ryan/.emacs.d/straight/build/org/org-element hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-element
/Users/ryan/.emacs.d/straight/build/org/org-protocol hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-protocol
/Users/ryan/.emacs.d/straight/build/org/ob-mscgen hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-mscgen
/Users/ryan/.emacs.d/straight/build/org/ob-gnuplot hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-gnuplot
/Users/ryan/.emacs.d/straight/build/org/org-tempo hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-tempo
/Users/ryan/.emacs.d/straight/build/org/ob-latex hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-latex
/Users/ryan/.emacs.d/straight/build/org/ol-w3m hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ol-w3m
/Users/ryan/.emacs.d/straight/build/org/org-id hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-id
/Users/ryan/.emacs.d/straight/build/org/ob-vala hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-vala
/Users/ryan/.emacs.d/straight/build/org/ox-man hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ox-man
/Users/ryan/.emacs.d/straight/build/org/org-feed hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-feed
/Users/ryan/.emacs.d/straight/build/org/ob-lua hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-lua
/Users/ryan/.emacs.d/straight/build/org/ob-table hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-table
/Users/ryan/.emacs.d/straight/build/org/ob-ocaml hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-ocaml
/Users/ryan/.emacs.d/straight/build/org/ob-coq hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-coq
/Users/ryan/.emacs.d/straight/build/org/ol-gnus hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ol-gnus
/Users/ryan/.emacs.d/straight/build/org/ob-picolisp hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-picolisp
/Users/ryan/.emacs.d/straight/build/org/org-indent hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-indent
/Users/ryan/.emacs.d/straight/build/org/ob-lilypond hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-lilypond
/Users/ryan/.emacs.d/straight/build/org/ob-matlab hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-matlab
/Users/ryan/.emacs.d/straight/build/org/org-datetree hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-datetree
/Users/ryan/.emacs.d/straight/build/org/ol-docview hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ol-docview
/Users/ryan/.emacs.d/straight/build/org/ob-python hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-python
/Users/ryan/.emacs.d/straight/build/org/ob-makefile hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-makefile
/Users/ryan/.emacs.d/straight/build/org/org-duration hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-duration
/Users/ryan/.emacs.d/straight/build/org/org-agenda hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-agenda
/Users/ryan/.emacs.d/straight/build/org/ob-dot hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-dot
/Users/ryan/.emacs.d/straight/build/org/ob-js hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-js
/Users/ryan/.emacs.d/straight/build/org/ox-publish hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ox-publish
/Users/ryan/.emacs.d/straight/build/org/org-inlinetask hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-inlinetask
/Users/ryan/.emacs.d/straight/build/org/ob-org hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-org
/Users/ryan/.emacs.d/straight/build/org/org-keys hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-keys
/Users/ryan/.emacs.d/straight/build/org/ob-core hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-core
/Users/ryan/.emacs.d/straight/build/org/org-compat hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-compat
/Users/ryan/.emacs.d/straight/build/org/ol hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ol
/Users/ryan/.emacs.d/straight/build/org/ox-odt hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ox-odt
/Users/ryan/.emacs.d/straight/build/org/ol-info hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ol-info
/Users/ryan/.emacs.d/straight/build/org/ob-plantuml hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-plantuml
/Users/ryan/.emacs.d/straight/build/org/ob-eshell hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-eshell
/Users/ryan/.emacs.d/straight/build/org/ox-ascii hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ox-ascii
/Users/ryan/.emacs.d/straight/build/org/org-loaddefs hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-loaddefs
/Users/ryan/.emacs.d/straight/build/org/ob-hledger hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-hledger
/Users/ryan/.emacs.d/straight/build/org/ob-maxima hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-maxima
/Users/ryan/.emacs.d/straight/build/org/org hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org
/Users/ryan/.emacs.d/straight/build/org/ol-bbdb hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ol-bbdb
/Users/ryan/.emacs.d/straight/build/org/org-macro hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-macro
/Users/ryan/.emacs.d/straight/build/org/ob-sql hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-sql
/Users/ryan/.emacs.d/straight/build/org/org-attach hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-attach
/Users/ryan/.emacs.d/straight/build/org/ob-processing hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-processing
/Users/ryan/.emacs.d/straight/build/org/ox-texinfo hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ox-texinfo
/Users/ryan/.emacs.d/straight/build/org/org-crypt hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-crypt
/Users/ryan/.emacs.d/straight/build/org/org-footnote hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-footnote
/Users/ryan/.emacs.d/straight/build/org/org-install hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/org-install
/Users/ryan/.emacs.d/straight/build/org/ob-comint hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-comint
/Users/ryan/.emacs.d/straight/build/org/ob-shen hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/org/ob-shen
/Users/ryan/.emacs.d/straight/build/let-alist/let-alist hides 
/usr/local/Cellar/emacs-plus <at> 27/27.1/share/emacs/27.1/lisp/emacs-lisp/let-alist

Features:
(shadow sort mail-extr pulse bug-reference magit-filenotify
magit-filenotify-autoloads magit-bookmark magit-submodule magit-obsolete
magit-popup 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 magit-diff smerge-mode
magit-core magit-autorevert magit-margin magit-transient git-commit
log-edit pcvs-util ess-s-lang ess-help ess-mode ess-inf ess-tracebug
magit-process magit-mode transient magit-git magit-section magit-utils
with-editor async-bytecomp server tramp-adb tramp-archive tramp-cache
tramp-cmds tramp-ftp tramp-gvfs dbus expand cc-langs ido-sort-mtime
ido-sort-mtime-autoloads autoload dabbrev eieio-opt speedbar sb-image
ezimage dframe nroff-mode rng-xsd xsd-regexp rng-cmpct rng-nxml
rng-valid nxml-mode nxml-outln nxml-rap sgml-mode reveal two-column
iso-transl misearch multi-isearch dired-aux crux bs url-about url-dav
url-dired recentf tree-widget markdown-mode edit-indirect autorevert
filenotify gnutls network-stream url-http url-gw nsm url-cache url-auth
ffap adjust-parens flymake-proc flymake vc-git diff-mode cl-print
completion help-fns radix-tree org-eldoc ol-eww eww mm-url url-queue
ol-rmail ol-mhe ol-irc ol-info ol-gnus nnir gnus-sum url url-proxy
url-privacy url-expand url-methods url-history mailcap shr url-cookie
url-domsuf url-util svg xml dom gnus-group gnus-undo gnus-start
gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int
gnus-range gnus-win ol-docview doc-view jka-compr image-mode exif
ol-bibtex bibtex ol-bbdb ol-w3m editorconfig-core
editorconfig-core-handle editorconfig-fnmatch epa-file emacsbug message
rmc puny rfc822 mml mml-sec epa epg epg-config mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
face-remap winner which-key which-func savehist saveplace mb-depth
midnight icomplete hl-line desktop frameset delsel flycheck-elsa
flycheck-elsa-autoloads flycheck flycheck-autoloads pkg-info-autoloads
ws-butler ws-butler-autoloads with-simulated-input
with-simulated-input-autoloads which-key-autoloads volatile-highlights
volatile-highlights-autoloads undo-tree diff undo-tree-autoloads tempbuf
tempbuf-autoloads system-specific-settings
system-specific-settings-autoloads snakemake-mode python tramp-sh
snakemake-mode-autoloads magit-popup-autoloads smooth-scrolling
smooth-scrolling-autoloads sml-modeline sml-modeline-autoloads slime
compile etags fileloop xref project arc-mode archive-mode hyperspec
slime-autoloads macrostep-autoloads shrink-whitespace-autoloads
selectrum-prescient prescient selectrum-prescient-autoloads
prescient-autoloads selectrum crm selectrum-autoloads
reveal-in-osx-finder dired dired-loaddefs reveal-in-osx-finder-autoloads
rainbow-delimiters rainbow-delimiters-autoloads pretty-symbols
pretty-symbols-autoloads poly-R-autoloads poly-noweb-autoloads
poly-markdown-autoloads polymode derived poly-lock polymode-base
polymode-weave polymode-export polymode-compat polymode-methods
polymode-core polymode-classes eieio-custom eieio-base color
polymode-autoloads pointback assoc pointback-autoloads paradox
paradox-menu paradox-commit-list hydra lv paradox-execute paradox-github
paradox-core spinner paradox-autoloads hydra-autoloads lv-autoloads
spinner-autoloads package-lint let-alist finder package-lint-autoloads
let-alist-autoloads org-superstar org-superstar-autoloads org-autoloads
ox-extra ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util
rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex
ox-icalendar ox-html table ox-ascii ox-publish ox org-element avl-tree
generator gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045
ietf-drums mail-utils mm-util mail-prsvr occur-context-resize
occur-context-resize-autoloads noflet cl-indent noflet-autoloads
mode-line-bell mode-line-bell-autoloads edit-indirect-autoloads
markdown-mode-autoloads magit-autoloads git-commit-autoloads
with-editor-autoloads transient-autoloads mac-pseudo-daemon
mac-pseudo-daemon-autoloads lexbind-mode lexbind-mode-autoloads
json-mode json-reformat json-snatcher js imenu cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
json-mode-autoloads json-snatcher-autoloads json-reformat-autoloads iqa
bookmark text-property-search iqa-autoloads image+ image-file
image+-autoloads ido-yes-or-no ido-yes-or-no-autoloads
ido-completing-read+ memoize minibuf-eldef ido
ido-completing-read+-autoloads memoize-autoloads
ido-complete-space-or-hyphen ido-complete-space-or-hyphen-autoloads
htmlize cl htmlize-autoloads highlight-stages highlight-stages-autoloads
highlight-defined highlight-defined-autoloads header2 header2-autoloads
git-wip-mode vc vc-dispatcher git-wip-mode-autoloads git-gutter-fringe
fringe-helper git-gutter-fringe-autoloads fringe-helper-autoloads
git-gutter git-gutter-autoloads filelock filelock-autoloads
esup-autoloads cus-edit cus-start cus-load wid-edit ess ess-utils
ess-custom tramp tramp-loaddefs trampver tramp-integration files-x
tramp-compat shell parse-time iso8601 ls-lisp ess-autoloads elsa
elsa-typed-subr elsa-typed-thingatpt elsa-typed-syntax
elsa-extension-builtin elsa-ruleset elsa-rules-list elsa-analyser
elsa-typed-builtin elsa-english elsa-check elsa-state elsa-scope
elsa-reader elsa-type-helpers elsa-error pcase elsa-variable trinary
elsa-types elsa-autoloads trinary-autoloads editorconfig
editorconfig-autoloads readme-debian readme-debian-autoloads
debian-copyright debian-copyright-autoloads debian-control-mode
debian-control-mode-autoloads debian-changelog-mode add-log
debian-changelog-mode-autoloads diminish diminish-autoloads decide
decide-autoloads cwl-mode yaml-mode cwl-mode-autoloads
yaml-mode-autoloads crux-autoloads crontab-mode sh-script smie
executable crontab-mode-autoloads creole-mode-autoloads cl-lib-highlight
cl-lib-highlight-autoloads cask-mode cask-mode-autoloads cask
cask-bootstrap ansi package-recipe-mode package-build-badges
package-build package-recipe eieio-compat lisp-mnt shut-up epl git
commander cask-autoloads ansi-autoloads package-build-autoloads
shut-up-autoloads epl-autoloads caddyfile-mode-autoloads loop-autoloads
buttercup warnings ert pp ewoc debug backtrace buttercup-compat
buttercup-autoloads beacon beacon-autoloads bar-cursor
bar-cursor-autoloads autopair paren autopair-autoloads
auto-dim-other-buffers auto-dim-other-buffers-autoloads auto-complete
edmacro kmacro popup auto-complete-autoloads popup-autoloads finder-inf
async async-autoloads apt-sources-list apt-sources-list-autoloads
apache-mode-autoloads anzu thingatpt anzu-autoloads amx amx-autoloads
adjust-parens-autoloads exec-path-from-shell
exec-path-from-shell-autoloads f s f-autoloads s-autoloads req-package
view req-package-cycles req-package-args req-package-hooks ht log4e rx
dash use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key use-package-core
req-package-autoloads ht-autoloads log4e-autoloads dash-autoloads
use-package-autoloads bind-key-autoloads org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete
pcomplete comint ansi-color ring org-list org-faces org-entities
time-date noutline outline easy-mmode ob-emacs-lisp ob-core ob-eval
org-table ol org-keys org-compat advice org-macs org-loaddefs
format-spec find-func cal-menu calendar cal-loaddefs
org-plus-contrib-autoloads org-version straight-autoloads info cl-extra
help-mode straight package easymenu browse-url url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json subr-x map url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer cl-generic 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 charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads kqueue cocoa ns
lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 16 3612399 319243)
(symbols 48 69740 1)
(strings 32 341577 11978)
(string-bytes 1 8923442)
(vectors 16 116902)
(vector-slots 8 2255067 275170)
(floats 8 730 1708)
(intervals 56 38854 602)
(buffers 1000 122))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47127; Package emacs. (Fri, 24 Jun 2022 12:57:02 GMT) Full text and rfc822 format available.

Message #8 received at 47127 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: "Ryan C. Thompson" <rct <at> thompsonclan.org>
Cc: 47127 <at> debbugs.gnu.org
Subject: Re: bug#47127: 27.1; ido file completion sorting should respect
 ido-case-fold, maybe?
Date: Fri, 24 Jun 2022 14:56:11 +0200
"Ryan C. Thompson" <rct <at> thompsonclan.org> writes:

> ;; Returns nil, as expected
> (let ((ido-case-fold nil))
>   (ido-file-lessp "a" "B"))
>
> ;; Should return t, but currently returns nil
> (let ((ido-case-fold t))
>   (ido-file-lessp "a" "B"))
>
> ;; Should still return t because case is the only difference
> (let ((ido-case-fold t))
>   (ido-file-lessp "A" "a"))
>
> At least, this is what makes sense to me.

I think this function should respect ido-case-fold, but special-casing
equal strings here seems pretty unnatural to me -- if you want to ignore
case, you want to ignore case.

So I've now made this change in Emacs 29.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




bug marked as fixed in version 29.1, send any further explanations to 47127 <at> debbugs.gnu.org and "Ryan C. Thompson" <rct <at> thompsonclan.org> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Fri, 24 Jun 2022 12:57:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#47127; Package emacs. (Fri, 24 Jun 2022 13:59:01 GMT) Full text and rfc822 format available.

Message #13 received at 47127 <at> debbugs.gnu.org (full text, mbox):

From: "Ryan C. Thompson" <rct <at> thompsonclan.org>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 47127 <at> debbugs.gnu.org
Subject: Re: bug#47127: 27.1; ido file completion sorting should respect
 ido-case-fold, maybe?
Date: Fri, 24 Jun 2022 09:58:17 -0400
On 6/24/22 8:56 AM, Lars Ingebrigtsen wrote:
> "Ryan C. Thompson" <rct <at> thompsonclan.org> writes:
>
>> ;; Returns nil, as expected
>> (let ((ido-case-fold nil))
>>    (ido-file-lessp "a" "B"))
>>
>> ;; Should return t, but currently returns nil
>> (let ((ido-case-fold t))
>>    (ido-file-lessp "a" "B"))
>>
>> ;; Should still return t because case is the only difference
>> (let ((ido-case-fold t))
>>    (ido-file-lessp "A" "a"))
>>
>> At least, this is what makes sense to me.
> I think this function should respect ido-case-fold, but special-casing
> equal strings here seems pretty unnatural to me -- if you want to ignore
> case, you want to ignore case.
>
> So I've now made this change in Emacs 29.

I don't understand why it's a problem to special-case strings that are 
equal after case folding. If I understand correctly, when case folding 
is enabled, then the sort order of such strings is arbitrary. If so, why 
not choose a consistent way to break the tie? For instance, if I know 
that "A.txt" will always sort before "a.txt" and both are present in the 
folder, if the order is consistent then I can always type "a.txt C-s 
RET" to select "a.txt", because I know it will be the 2nd matching 
choice. The result is a sort order that is correct when ignoring case 
while also being completely predictable even for strings differing only 
in case.

Regardless, I don't feel strongly about this, and I can always apply 
advice similar to the above for my own use, so if you're not convinced 
by the above argument, feel free to leave it as is. (Also, perhaps it 
already works this way incidentally, if the list of files is returned in 
lexical order and the sorting is stable.)






bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 23 Jul 2022 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 249 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.