unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#16577: 24.3; Ido omitting directories with similar names to other directories
@ 2014-01-28 11:15 Rotem Yaari
  2014-01-28 16:00 ` Eli Zaretskii
  0 siblings, 1 reply; 28+ messages in thread
From: Rotem Yaari @ 2014-01-28 11:15 UTC (permalink / raw)
  To: 16577

[-- Attachment #1: Type: text/plain, Size: 20382 bytes --]



When finding files with ido, let's say with this directory structure:  

- /tmp  
- /tmp/folders  
- /tmp/folders/a2  
- /tmp/folders/a.git  

Navigating to `folders` will only display `a2` as a possible completion,  
omitting `a.git`. One has to explicitly add the '.git' suffix to get the  
candidate one is looking for.  


In GNU Emacs 24.3.1 (x86_64-apple-darwin, NS apple-appkit-1038.36)  
of 2013-03-13 on bob.porkrind.org  
Windowing system distributor `Apple', version 10.3.1265  
Configured using:  
`configure '--host=x86_64-apple-darwin' '--build=i686-apple-darwin'  
'--with-ns' 'build_alias=i686-apple-darwin'  
'host_alias=x86_64-apple-darwin' 'CC=gcc -mmacosx-version-min=10.7  
-isystem  
/Users/david/Xcode-10.7_4.5.2/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/  
-F/Users/david/Xcode-10.7_4.5.2/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks''  

Important settings:  
locale-coding-system: nil  
default enable-multibyte-characters: t  

Major mode: Dired by name  

Minor modes in effect:  
nyan-mode: t  
global-semanticdb-minor-mode: t  
global-semantic-idle-scheduler-mode: t  
semantic-mode: t  
drag-stuff-global-mode: t  
drag-stuff-mode: t  
global-auto-complete-mode: t  
global-undo-tree-mode: t  
diff-auto-refine-mode: t  
helm-mode: t  
shell-dirtrack-mode: t  
helm-match-plugin-mode: t  
helm-occur-match-plugin-mode: t  
ido-vertical-mode: t  
ido-ubiquitous-mode: t  
yas-global-mode: t  
yas-minor-mode: t  
recentf-mode: t  
guide-key-mode: t  
winner-mode: t  
show-paren-mode: t  
display-battery-mode: t  
display-time-mode: t  
cua-mode: t  
global-auto-revert-mode: t  
projectile-global-mode: t  
projectile-mode: t  
tooltip-mode: t  
mouse-wheel-mode: t  
file-name-shadow-mode: t  
global-font-lock-mode: t  
font-lock-mode: t  
auto-composition-mode: t  
auto-encryption-mode: t  
auto-compression-mode: t  
buffer-read-only: t  
line-number-mode: t  
transient-mark-mode: t  

Recent input:  
e s t C-d  





















q q  
C-x C-f  
w o i n f i n i p y i  
n f i n i p y . C-x C-g C-g C-g C-x C-f /  
t m p / f o l d e a . g C-g C-g C-g C-x C-f /  
t m p / f o l a . C-g C-g C-g C-g C-x C-f  
/ t m p / f o l d C-g x r e p o r  
t -  

Recent messages:  
Loading semantic/db-file...done  
Loading vc-git...done  
Parsing pool.py (LALR)...done  
Saving file /Users/rotemy/.recentf...  
Wrote /Users/rotemy/.recentf  
ls does not support --dired; see `dired-use-ls-dired' for more details.  
Saving file /Users/rotemy/.recentf...  
Wrote /Users/rotemy/.recentf  
Saving file /Users/rotemy/.recentf...  
Wrote /Users/rotemy/.recentf  
Quit [11 times]  

Load-path shadows:  
/Users/rotemy/.emacs.d/elpa/flycheck-20140107.305/.dir-locals hides /Users/rotemy/.emacs.d/elpa/js2-mode-20131221.1908/.dir-locals  
~/.emacs.d/modes/python.el/python hides ~/.emacs.d/modes/python  
~/.emacs.d/modes/python.el/python hides /Applications/Emacs.app/Contents/Resources/lisp/progmodes/python  
/Users/rotemy/.emacs.d/elpa/org-20140106/org hides /Applications/Emacs.app/Contents/Resources/lisp/org/org  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-w3m hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-w3m  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-version hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-version  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-timer hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-timer  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-table hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-table  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-src hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-src  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-rmail hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-rmail  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-protocol hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-protocol  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-plot hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-plot  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-pcomplete hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-pcomplete  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-mouse hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mouse  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-mobile hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mobile  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-mhe hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mhe  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-macs hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-macs  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-loaddefs hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-loaddefs  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-list hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-list  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-irc hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-irc  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-install hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-install  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-inlinetask hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-inlinetask  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-info hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-info  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-indent hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-indent  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-id hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-id  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-habit hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-habit  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-gnus hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-gnus  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-footnote hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-footnote  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-feed hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-feed  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-faces hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-faces  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-eshell hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-eshell  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-entities hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-entities  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-element hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-element  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-docview hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-docview  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-datetree hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-datetree  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-ctags hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-ctags  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-crypt hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-crypt  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-compat hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-compat  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-colview hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-colview  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-clock hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-clock  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-capture hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-capture  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-bibtex hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-bibtex  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-bbdb hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-bbdb  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-attach hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-attach  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-archive hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-archive  
/Users/rotemy/.emacs.d/elpa/org-20140106/org-agenda hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-agenda  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-tangle hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-tangle  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-table hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-table  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-sqlite hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sqlite  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-sql hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sql  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-shen hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-shen  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-sh hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sh  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-screen hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-screen  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-scheme hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-scheme  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-scala hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-scala  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-sass hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sass  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-ruby hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ruby  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-ref hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ref  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-R hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-R  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-python hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-python  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-plantuml hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-plantuml  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-picolisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-picolisp  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-perl hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-perl  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-org hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-org  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-octave hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-octave  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-ocaml hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ocaml  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-mscgen hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-mscgen  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-maxima hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-maxima  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-matlab hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-matlab  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-lob hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lob  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-lisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lisp  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-lilypond hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lilypond  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-ledger hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ledger  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-latex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-latex  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-keys hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-keys  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-js hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-js  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-java hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-java  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-io hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-io  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-haskell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-haskell  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-gnuplot hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-gnuplot  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-fortran hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-fortran  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-exp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-exp  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-eval hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-eval  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-emacs-lisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-emacs-lisp  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-dot hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-dot  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-ditaa hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ditaa  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-css hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-css  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-comint hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-comint  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-clojure hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-clojure  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-calc hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-calc  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-C hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-C  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-awk hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-awk  
/Users/rotemy/.emacs.d/elpa/org-20140106/ob-asymptote hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-asymptote  
/Users/rotemy/.emacs.d/elpa/flycheck-20140107.305/.dir-locals hides /Applications/Emacs.app/Contents/Resources/lisp/gnus/.dir-locals  
/Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/cl-lib hides /Users/rotemy/.emacs.d/elpa/cl-lib-0.3/cl-lib  

Features:  
(shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode  
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader  
sendmail rfc2047 rfc2045 ietf-drums mail-utils helm-command helm-elisp  
helm-eval eldoc tramp-cache semantic/tag-write semantic/tag-file vc-git  
semantic/db-file data-debug cedet-files semantic/wisent/python  
semantic/decorate/include semantic/db-find semantic/db-ref  
semantic/decorate/mode semantic/decorate pulse semantic/dep  
semantic/wisent/python-wy semantic/wisent semantic/wisent/wisent  
helm-misc subword diff-hl vc-dir ewoc vc vc-dispatcher  
tomorrow-night-bright-theme diminish inf-mongo js json nyan-mode  
rainbow-mode syslog-mode hide-lines column-marker yaml-mode js2-refactor  
js2r-paredit js2r-conveniences js2r-conditionals js2r-wrapping  
js2r-functions js2r-vars js2r-iife js2r-formatting js2r-helpers  
js2-mode-expansions js-mode-expansions js2-mode cc-mode-expansions  
cc-mode cc-fonts cc-guess cc-menus cc-styles cc-align cc-cmds cc-engine  
cc-vars cc-defs imenu emmet-mode web-mode-expansions web-mode disp-table  
haskell-mode haskell-string haskell-sort-imports haskell-align-imports  
flymake dabbrev python-auto-import python-auto-super  
redgreen-at-project-root python-el-fgallina-expansions python skeleton  
semantic/db-mode semantic/db eieio-base semantic/idle semantic/format  
ezimage semantic/tag-ls semantic/find semantic/ctxt semantic/util-modes  
semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local  
cedet flycheck rx f multiple-cursors mc-separate-operations  
rectangular-region-mode mc-mark-pop mc-mark-more mc-cycle-cursors  
mc-edit-lines multiple-cursors-core rect expand-region  
text-mode-expansions the-org-mode-expansions er-basic-expansions  
expand-region-custom expand-region-core drag-stuff wrap-region  
auto-complete-config auto-complete popup uniquify iedit iedit-lib  
undo-tree diff org org-macro org-footnote org-pcomplete org-list  
org-faces org-entities noutline outline org-version ob-emacs-lisp ob  
ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint  
ob-core ob-eval org-compat org-macs org-loaddefs cal-menu calendar  
cal-loaddefs ace-jump-mode magit-key-mode magit view epa derived epg  
epg-config diff-mode git-rebase-mode git-commit-mode log-edit easy-mmode  
pcvs-util add-log helm-mode helm-files image-dired tramp warnings  
tramp-compat tramp-loaddefs shell pcomplete format-spec dired-x  
dired-aux ffap helm-buffers helm-elscreen helm-tags helm-bookmark  
helm-adaptative helm-info helm-net browse-url xml url url-proxy  
url-privacy url-expand url-methods url-history url-cookie url-domsuf  
url-util url-parse auth-source eieio byte-opt bytecomp byte-compile  
cconv gnus-util mm-util mail-prsvr password-cache url-vars mailcap  
helm-plugin bookmark pp helm-locate helm-help helm-match-plugin  
helm-grep helm-regexp helm-external helm-utils dired helm-config  
helm-aliases helm ido-vertical-mode ido-ubiquitous ido-recentf-open ido  
yasnippet help-mode ibuffer server dired-details find-file-in-project  
saveplace recentf tree-widget wid-edit iflipb guide-key face-remap  
popwin winner paren battery time cua-base autorevert projectile advice  
help-fns advice-preload pkg-info find-func epl grep compile comint  
ansi-color ring thingatpt cus-start cus-load s dash setup-package  
ace-jump-mode-autoloads afternoon-theme-autoloads ag-autoloads  
auto-complete-clang-autoloads coffee-mode-autoloads  
column-marker-autoloads diff-hl-autoloads diminish-autoloads  
dired-details-autoloads drag-stuff-autoloads emmet-mode-autoloads  
expand-region-autoloads find-file-in-project-autoloads fiplr-autoloads  
flycheck-autoloads f-autoloads free-keys-autoloads git-gutter-autoloads  
grizzl-autoloads guide-key-autoloads haskell-mode-autoloads edmacro  
kmacro helm-css-scss-autoloads helm-projectile-autoloads helm-autoloads  
ido-ubiquitous-autoloads ido-vertical-mode-autoloads iedit-autoloads  
iflipb-autoloads inf-mongo-autoloads jedi-autoloads  
auto-complete-autoloads epc-autoloads ctable-autoloads  
concurrent-autoloads deferred-autoloads js2-refactor-autoloads  
js2-mode-autoloads key-chord-autoloads lua-mode-autoloads  
magit-autoloads git-rebase-mode-autoloads git-commit-mode-autoloads  
markdown-mode-autoloads minimap-autoloads multiple-cursors-autoloads  
nginx-mode-autoloads nyan-mode-autoloads org-trello-autoloads  
esxml-autoloads elnode-autoloads db-autoloads fakir-autoloads  
creole-autoloads kv-autoloads noflet-autoloads finder-inf org-autoloads  
info easymenu popup-autoloads popwin-autoloads powerline-autoloads  
powerline cl-macs gv powerline-separators color cl cl-lib  
powerline-themes projectile-autoloads pkg-info-autoloads epl-autoloads  
cl-lib-autoloads request-autoloads s-autoloads smex-autoloads  
solarized-theme-autoloads syslog-mode-autoloads hide-lines-autoloads  
undo-tree-autoloads web-autoloads web-mode-autoloads  
workgroups-autoloads wrap-region-autoloads dash-autoloads  
yaml-mode-autoloads yasnippet-autoloads zencoding-mode-autoloads package  
elisp-utils time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel  
ns-win tool-bar dnd fontset image regexp-opt fringe tabulated-list  
newcomment lisp-mode register page menu-bar rfn-eshadow timer select  
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham  
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao  
korean japanese hebrew greek romanian slovak czech european ethiopic  
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple  
abbrev minibuffer loaddefs button faces cus-face macroexp files  
text-properties overlay sha1 md5 base64 format env code-pages mule  
custom widget hashtable-print-readable backquote make-network-process ns  
multi-tty emacs)  

-- 
Rotem

[-- Attachment #2: Type: text/html, Size: 24491 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: 24.3; Ido omitting directories with similar names to other directories
  2014-01-28 11:15 bug#16577: 24.3; Ido omitting directories with similar names to other directories Rotem Yaari
@ 2014-01-28 16:00 ` Eli Zaretskii
  2014-01-28 17:18   ` Glenn Morris
  0 siblings, 1 reply; 28+ messages in thread
From: Eli Zaretskii @ 2014-01-28 16:00 UTC (permalink / raw)
  To: Rotem Yaari; +Cc: 16577

> Date: Tue, 28 Jan 2014 13:15:01 +0200
> From: Rotem Yaari <vmalloc@gmail.com>
> 
> When finding files with ido, let's say with this directory structure:  
> 
> - /tmp  
> - /tmp/folders  
> - /tmp/folders/a2  
> - /tmp/folders/a.git  
> 
> Navigating to `folders` will only display `a2` as a possible completion,  
> omitting `a.git`. One has to explicitly add the '.git' suffix to get the  
> candidate one is looking for.  

Please post a complete recipe starting with "emacs -Q", to allow quick
and unequivocal identification of the problem.

Thanks.





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: 24.3; Ido omitting directories with similar names to other directories
  2014-01-28 16:00 ` Eli Zaretskii
@ 2014-01-28 17:18   ` Glenn Morris
  2014-01-28 17:24     ` Eli Zaretskii
  0 siblings, 1 reply; 28+ messages in thread
From: Glenn Morris @ 2014-01-28 17:18 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Rotem Yaari, 16577

Eli Zaretskii wrote:

> Please post a complete recipe starting with "emacs -Q", to allow quick
> and unequivocal identification of the problem.

It may be relevant that completion-ignored-extensions contains ".git/".





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: 24.3; Ido omitting directories with similar names to other directories
  2014-01-28 17:18   ` Glenn Morris
@ 2014-01-28 17:24     ` Eli Zaretskii
  2014-01-28 17:35       ` Rotem Yaari
  2014-01-28 18:59       ` Glenn Morris
  0 siblings, 2 replies; 28+ messages in thread
From: Eli Zaretskii @ 2014-01-28 17:24 UTC (permalink / raw)
  To: Glenn Morris; +Cc: vmalloc, 16577

> From: Glenn Morris <rgm@gnu.org>
> Cc: Rotem Yaari <vmalloc@gmail.com>,  16577@debbugs.gnu.org
> Date: Tue, 28 Jan 2014 12:18:51 -0500
> 
> Eli Zaretskii wrote:
> 
> > Please post a complete recipe starting with "emacs -Q", to allow quick
> > and unequivocal identification of the problem.
> 
> It may be relevant that completion-ignored-extensions contains ".git/".

Oh, I thought a.git was a file, not a directory.  But now I see that
there's nothing in the report to that effect.  If it is a directory,
then this is intended behavior.





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: 24.3; Ido omitting directories with similar names to other directories
  2014-01-28 17:24     ` Eli Zaretskii
@ 2014-01-28 17:35       ` Rotem Yaari
  2014-01-28 17:39         ` Eli Zaretskii
  2014-01-28 18:59       ` Glenn Morris
  1 sibling, 1 reply; 28+ messages in thread
From: Rotem Yaari @ 2014-01-28 17:35 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 16577

[-- Attachment #1: Type: text/plain, Size: 757 bytes --]

Why? Is there a way to disable it? I work on two project with similar prefixes, and this is very annoying—
Rotem

On Tue, Jan 28, 2014 at 7:24 PM, Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Glenn Morris <rgm@gnu.org>
>> Cc: Rotem Yaari <vmalloc@gmail.com>,  16577@debbugs.gnu.org
>> Date: Tue, 28 Jan 2014 12:18:51 -0500
>> 
>> Eli Zaretskii wrote:
>> 
>> > Please post a complete recipe starting with "emacs -Q", to allow quick
>> > and unequivocal identification of the problem.
>> 
>> It may be relevant that completion-ignored-extensions contains ".git/".
> Oh, I thought a.git was a file, not a directory.  But now I see that
> there's nothing in the report to that effect.  If it is a directory,
> then this is intended behavior.

[-- Attachment #2: Type: text/html, Size: 1177 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: 24.3; Ido omitting directories with similar names to other directories
  2014-01-28 17:35       ` Rotem Yaari
@ 2014-01-28 17:39         ` Eli Zaretskii
  0 siblings, 0 replies; 28+ messages in thread
From: Eli Zaretskii @ 2014-01-28 17:39 UTC (permalink / raw)
  To: Rotem Yaari; +Cc: 16577

> Date: Tue, 28 Jan 2014 09:35:29 -0800 (PST)
> From: "Rotem Yaari" <vmalloc@gmail.com>
> Cc: "Glenn Morris" <rgm@gnu.org>, 16577@debbugs.gnu.org
> 
> Why?

Because of the '.git' directory.

> Is there a way to disable it?

You can customize completion-ignored-extensions.





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: 24.3; Ido omitting directories with similar names to other directories
  2014-01-28 17:24     ` Eli Zaretskii
  2014-01-28 17:35       ` Rotem Yaari
@ 2014-01-28 18:59       ` Glenn Morris
  2014-01-28 19:17         ` Eli Zaretskii
  1 sibling, 1 reply; 28+ messages in thread
From: Glenn Morris @ 2014-01-28 18:59 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: vmalloc, 16577

Eli Zaretskii wrote:

>> It may be relevant that completion-ignored-extensions contains ".git/".
>
> Oh, I thought a.git was a file, not a directory.  But now I see that
> there's nothing in the report to that effect.  If it is a directory,
> then this is intended behavior.

Emacs should only ignore ".git" directories.
It should not ignore "foo.git" directories.





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: 24.3; Ido omitting directories with similar names to other directories
  2014-01-28 18:59       ` Glenn Morris
@ 2014-01-28 19:17         ` Eli Zaretskii
  2014-01-28 20:15           ` Glenn Morris
  0 siblings, 1 reply; 28+ messages in thread
From: Eli Zaretskii @ 2014-01-28 19:17 UTC (permalink / raw)
  To: Glenn Morris; +Cc: vmalloc, 16577

> From: Glenn Morris <rgm@gnu.org>
> Cc: vmalloc@gmail.com,  16577@debbugs.gnu.org
> Date: Tue, 28 Jan 2014 13:59:40 -0500
> 
> Emacs should only ignore ".git" directories.
> It should not ignore "foo.git" directories.

Then completion-ignored-extensions is not the right mechanism for
ignoring those directories.

(I'm quite sure that this was discussed in some distant past, just not
about Git.)





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: 24.3; Ido omitting directories with similar names to other directories
  2014-01-28 19:17         ` Eli Zaretskii
@ 2014-01-28 20:15           ` Glenn Morris
  2014-01-28 21:39             ` Stefan Monnier
  2014-01-29  2:43             ` Glenn Morris
  0 siblings, 2 replies; 28+ messages in thread
From: Glenn Morris @ 2014-01-28 20:15 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: vmalloc, 16577

Eli Zaretskii wrote:

> Then completion-ignored-extensions is not the right mechanism for
> ignoring those directories.
>
> (I'm quite sure that this was discussed in some distant past, just not
> about Git.)

Sure it was, and it was literally the exact same problem three years
ago, but it suffered from the emacs-devel disease (talked about, but
nothing ever happened, AFAIK):

http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00413.html

What Someone needs to do:

http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00459.html





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: 24.3; Ido omitting directories with similar names to other directories
  2014-01-28 20:15           ` Glenn Morris
@ 2014-01-28 21:39             ` Stefan Monnier
  2014-01-29  2:43             ` Glenn Morris
  1 sibling, 0 replies; 28+ messages in thread
From: Stefan Monnier @ 2014-01-28 21:39 UTC (permalink / raw)
  To: Glenn Morris; +Cc: vmalloc, 16577

> What Someone needs to do:
> http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00459.html

That damn Someone!  Lazy bastard!


        Stefan





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: 24.3; Ido omitting directories with similar names to other directories
  2014-01-28 20:15           ` Glenn Morris
  2014-01-28 21:39             ` Stefan Monnier
@ 2014-01-29  2:43             ` Glenn Morris
  2022-02-20 13:26               ` bug#16577: Add regexp-based version of completion-ignored-extensions Lars Ingebrigtsen
  1 sibling, 1 reply; 28+ messages in thread
From: Glenn Morris @ 2014-01-29  2:43 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: vmalloc, 16577


In the short term, maybe it would be better if .git etc were removed
from completion-ignored-extensions.





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2014-01-29  2:43             ` Glenn Morris
@ 2022-02-20 13:26               ` Lars Ingebrigtsen
  2022-02-20 15:06                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-02-20 21:48                 ` bug#16577: [External] : " Drew Adams
  0 siblings, 2 replies; 28+ messages in thread
From: Lars Ingebrigtsen @ 2022-02-20 13:26 UTC (permalink / raw)
  To: Glenn Morris; +Cc: vmalloc, 16577, Stefan Monnier

Glenn Morris <rgm@gnu.org> writes:

> In the short term, maybe it would be better if .git etc were removed
> from completion-ignored-extensions.

This was eight years ago, which is probably still short term in Emacs
years.

Anyway, this problem is still present in Emacs 29.  To reproduce:

mkdir /tmp/dir
mkdir /tmp/dir/a.git
mkdir /tmp/dir/aCVS
mkdir /tmp/dir/b
mkdir /tmp/dir/c
emacs -Q /tmp/dir
M-x ido-mode
C-x C-f

Notice that it only completes to b and c, and a.git and aCVS are
excluded.  This is because:

completion-ignored-extensions
=>
(".o" "~" ".bin" ".lbin" ".so" ".a" ".ln" ".blg" ".bbl" ".elc" ".lof" ".glo" ".idx" ".lot" ".svn/" ".hg/" ".git/" ".bzr/" "CVS/" "_darcs/" "_MTN/" ".fmt" ".tfm" ".class" ".fas" ".lib" ".mem" ".x86f" ".sparcf" ".dfsl" ".pfsl" ".d64fsl" ".p64fsl" ".lx64fsl" ".lx32fsl" ".dx64fsl" ".dx32fsl" ".fx64fsl" ".fx32fsl" ".sx64fsl" ".sx32fsl" ".wx64fsl" ".wx32fsl" ".fasl" ".ufsl" ".fsl" ".dxl" ".lo" ".la" ".gmo" ".mo" ".toc" ".aux" ".cp" ".fn" ".ky" ".pg" ".tp" ".vr" ".cps" ".fns" ".kys" ".pgs" ".tps" ".vrs" ".pyc" ".pyo")

So we're using this mechanism to try to exclude directories named "CVS",
which end up excluding directories called "aCVS".

I think perhaps of introducing a regexp-based extra mechanism here that
we should introduce a new completion-ignored-files variable, which would
default to '(".svn/" ".hg/" ".git/" ".bzr/" "CVS/" "_darcs/" "_MTN/")
(probably), and then remove those from -extensions.

However, this will require a lot of work --
completion-ignored-extensions is used many places (and it's commonly
used as a regexp), so it may require rewriting a whole bunch of stuff.
And it'll be slightly non-backwards-compatible if a user has removed
"CVS/" from the old variable, and then it reappears in the new one.

But it sounds worth doing, I think.

Anybody have any opinions?

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





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-20 13:26               ` bug#16577: Add regexp-based version of completion-ignored-extensions Lars Ingebrigtsen
@ 2022-02-20 15:06                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-02-20 22:05                   ` bug#16577: [External] : " Drew Adams
  2022-02-21 14:00                   ` Lars Ingebrigtsen
  2022-02-20 21:48                 ` bug#16577: [External] : " Drew Adams
  1 sibling, 2 replies; 28+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-02-20 15:06 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: vmalloc, Glenn Morris, Eli Zaretskii, 16577

> I think perhaps of introducing a regexp-based extra mechanism here that
> we should introduce a new completion-ignored-files variable, which would
> default to '(".svn/" ".hg/" ".git/" ".bzr/" "CVS/" "_darcs/" "_MTN/")
> (probably), and then remove those from -extensions.

BTW, maybe we can merge the two propositions:
Allow the use in `completion-ignored-files` of entries of the form
"/<RE>" where <RE> will be matched against the nondirectory part of the
file name.  We'd probably want to make this match anchored, since that's
what the "/" suggests.  It means that instead of "/.git/" we'd add
"/\\.git/" or "/\\.git/?\\'".

This should make the change much less invasive, with most existing uses
of `completion-ignored-files` unaffected.


        Stefan






^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: [External] : bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-20 13:26               ` bug#16577: Add regexp-based version of completion-ignored-extensions Lars Ingebrigtsen
  2022-02-20 15:06                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-02-20 21:48                 ` Drew Adams
  1 sibling, 0 replies; 28+ messages in thread
From: Drew Adams @ 2022-02-20 21:48 UTC (permalink / raw)
  To: Lars Ingebrigtsen, Glenn Morris
  Cc: vmalloc@gmail.com, 16577@debbugs.gnu.org, Stefan Monnier

> > In the short term, maybe it would be better if .git etc were removed
> > from completion-ignored-extensions.
> 
> Anyway, this problem is still present in Emacs 29.  To reproduce:
...
> Notice that it only completes to b and c, and a.git and aCVS are
> excluded.  This is because:
> 
> completion-ignored-extensions
> =>
> (".o" "~" ".bin" ".lbin" ".so" ".a" ".ln" ".blg" ".bbl" ".elc" ".lof" ".glo"
> ".idx" ".lot" ".svn/" ".hg/" ".git/" ".bzr/" "CVS/" "_darcs/" "_MTN/" ".fmt"
> ".tfm" ".class" ".fas" ".lib" ".mem" ".x86f" ".sparcf" ".dfsl" ".pfsl"
> ".d64fsl" ".p64fsl" ".lx64fsl" ".lx32fsl" ".dx64fsl" ".dx32fsl" ".fx64fsl"
> ".fx32fsl" ".sx64fsl" ".sx32fsl" ".wx64fsl" ".wx32fsl" ".fasl" ".ufsl"
> ".fsl" ".dxl" ".lo" ".la" ".gmo" ".mo" ".toc" ".aux" ".cp" ".fn" ".ky" ".pg"
> ".tp" ".vr" ".cps" ".fns" ".kys" ".pgs" ".tps" ".vrs" ".pyc" ".pyo")
> 
> So we're using this mechanism to try to exclude directories named "CVS",
> which end up excluding directories called "aCVS".

(I'm not following this thread.)

It sounds like `completion-ignored-extensions'
is maybe being misused somewhere (?).

Maybe `vc-directory-exclusion-list' is relevant
for what you're wanting?

 Its value is 
 ("SCCS" "RCS" "CVS" "MCVS" ".src" ".svn" ".git"
  ".hg" ".bzr" "_MTN" "_darcs" "{arch}")

 Documentation:
 List of directory names to be ignored when walking directory trees.

 You can customize this variable.

> I think perhaps of introducing a regexp-based extra mechanism here that
> we should introduce a new completion-ignored-files variable, which would
> default to '(".svn/" ".hg/" ".git/" ".bzr/" "CVS/" "_darcs/" "_MTN/")
> (probably), and then remove those from -extensions.
> 
> However, this will require a lot of work --
> completion-ignored-extensions is used many places (and it's commonly
> used as a regexp),

It's used as a regexp?  So all of the entries
".<something>" match any non-newline char
before what <something> matches, instead of a
literal dot there?

Where do you see it used as a regexp?





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: [External] : bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-20 15:06                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-02-20 22:05                   ` Drew Adams
  2022-02-21 14:00                   ` Lars Ingebrigtsen
  1 sibling, 0 replies; 28+ messages in thread
From: Drew Adams @ 2022-02-20 22:05 UTC (permalink / raw)
  To: Stefan Monnier, Lars Ingebrigtsen
  Cc: vmalloc@gmail.com, Glenn Morris, 16577@debbugs.gnu.org

> This should make the change much less invasive, with most existing uses
> of `completion-ignored-files` unaffected.

Most existing uses where?

If you change the meaning/behavior of
`completion-ignored-files' you'll undoubtedly
break existing code somewhere.  Till now, the
extensions have been literal extensions.

If something else is needed to handle directory
names (and not even the extensions of dir names
that have extensions), then add/invent that.

Why change the use/meaning of
`completion-ignored-extensions?





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-20 15:06                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-02-20 22:05                   ` bug#16577: [External] : " Drew Adams
@ 2022-02-21 14:00                   ` Lars Ingebrigtsen
  2022-02-21 16:06                     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 28+ messages in thread
From: Lars Ingebrigtsen @ 2022-02-21 14:00 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: vmalloc, Glenn Morris, 16577

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> BTW, maybe we can merge the two propositions:
> Allow the use in `completion-ignored-files` of entries of the form
> "/<RE>" where <RE> will be matched against the nondirectory part of the
> file name.

I haven't looked at the various code snippets that use the resulting
regexps, but I imagine that some are matching on the full file name and
some aren't?

But do you mean that completion-ignored-files should be on the form
(... "/CV[A-S]/" ...)?

> We'd probably want to make this match anchored, since that's
> what the "/" suggests.  It means that instead of "/.git/" we'd add
> "/\\.git/" or "/\\.git/?\\'".

If we want this to work against both full file names and nondirectory
parts, it'd be...  er...

"\\(?:\\`\\|/\\)\\.git/?\\'"

I guess. 

Which nobody is going to get right, so I wonder whether it should just
be a list of strings instead of a list of regexps.

> This should make the change much less invasive, with most existing uses
> of `completion-ignored-files` unaffected.

I guess I should start poking at this and see how it works out in
practice.  Skimming the places where it's used, I think it's about a
dozen locations that needs adjusting.  But I may be overestimating.

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





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-21 14:00                   ` Lars Ingebrigtsen
@ 2022-02-21 16:06                     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-02-21 16:20                       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 28+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-02-21 16:06 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: vmalloc, Glenn Morris, Eli Zaretskii, 16577

> I haven't looked at the various code snippets that use the resulting
> regexps, but I imagine that some are matching on the full file name and
> some aren't?

I think the important case only has the nondirectory part of the file
name at hand, which is why I propose for "/<RE>" to be defined as
matching only on that part (with a terminating / if it's a directory).

> But do you mean that completion-ignored-files should be on the form
> (... "/CV[A-S]/" ...)?

If we want to ignore .../CVA/, .../CVB/, etc yes.

>> We'd probably want to make this match anchored, since that's
>> what the "/" suggests.  It means that instead of "/.git/" we'd add
>> "/\\.git/" or "/\\.git/?\\'".
>
> If we want this to work against both full file names and nondirectory
> parts, it'd be...  er...
>
> "\\(?:\\`\\|/\\)\\.git/?\\'"

No, the "/" would look like it's matching the / of a full file name, but
it would really be just a marker to indicate that the rest is a regexp
(and where it's anchored) and the matching code would extract the regexp
from it (and replace it with the equivalent of \\(?:\\`\\|/\\) as
needed).


        Stefan






^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-21 16:06                     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-02-21 16:20                       ` Lars Ingebrigtsen
  2022-02-21 16:23                         ` Lars Ingebrigtsen
  2022-02-21 17:01                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 28+ messages in thread
From: Lars Ingebrigtsen @ 2022-02-21 16:20 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: vmalloc, Glenn Morris, 16577

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> I haven't looked at the various code snippets that use the resulting
>> regexps, but I imagine that some are matching on the full file name and
>> some aren't?
>
> I think the important case only has the nondirectory part of the file
> name at hand, which is why I propose for "/<RE>" to be defined as
> matching only on that part (with a terminating / if it's a directory).

Oh, so this wouldn't be a plain regexp, but a ... mini-language where
"/" has a special meaning?  I think that sounds pretty confusing.

> No, the "/" would look like it's matching the / of a full file name, but
> it would really be just a marker to indicate that the rest is a regexp
> (and where it's anchored) and the matching code would extract the regexp
> from it (and replace it with the equivalent of \\(?:\\`\\|/\\) as
> needed).

Hm.  I think it'd a more straightforward interface to just keep regexps
out of it all, but I see the attraction of having a regexp interface,
too.

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





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-21 16:20                       ` Lars Ingebrigtsen
@ 2022-02-21 16:23                         ` Lars Ingebrigtsen
  2022-02-21 16:57                           ` Eli Zaretskii
  2022-02-21 17:01                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 28+ messages in thread
From: Lars Ingebrigtsen @ 2022-02-21 16:23 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: vmalloc, Glenn Morris, 16577

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Oh, so this wouldn't be a plain regexp, but a ... mini-language where
> "/" has a special meaning?  I think that sounds pretty confusing.

By the way, it'd be nice to have a zero-width regexp matcher for "start
of file name component" (i.e., match after "/" or at the start of the
string).  We don't have that already anywhere, by any chance?

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





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-21 16:23                         ` Lars Ingebrigtsen
@ 2022-02-21 16:57                           ` Eli Zaretskii
  2022-02-21 17:01                             ` Lars Ingebrigtsen
  0 siblings, 1 reply; 28+ messages in thread
From: Eli Zaretskii @ 2022-02-21 16:57 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: vmalloc, rgm, 16577, monnier

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: Glenn Morris <rgm@gnu.org>,  vmalloc@gmail.com,  Eli Zaretskii
>  <eliz@gnu.org>,  16577@debbugs.gnu.org
> Date: Mon, 21 Feb 2022 17:23:11 +0100
> 
> By the way, it'd be nice to have a zero-width regexp matcher for "start
> of file name component" (i.e., match after "/" or at the start of the
> string).  We don't have that already anywhere, by any chance?

Regular expressions don't understand file names, they are just strings
as far as regexps are concerned.





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-21 16:57                           ` Eli Zaretskii
@ 2022-02-21 17:01                             ` Lars Ingebrigtsen
  2022-02-21 17:13                               ` Eli Zaretskii
  0 siblings, 1 reply; 28+ messages in thread
From: Lars Ingebrigtsen @ 2022-02-21 17:01 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: vmalloc, rgm, 16577, monnier

Eli Zaretskii <eliz@gnu.org> writes:

> Regular expressions don't understand file names, they are just strings
> as far as regexps are concerned.

Of course they're strings, but a regexp operator has semantics.

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





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-21 16:20                       ` Lars Ingebrigtsen
  2022-02-21 16:23                         ` Lars Ingebrigtsen
@ 2022-02-21 17:01                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-02-21 17:33                           ` bug#16577: [External] : " Drew Adams
  2022-02-22 13:17                           ` Lars Ingebrigtsen
  1 sibling, 2 replies; 28+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-02-21 17:01 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: vmalloc, Glenn Morris, Eli Zaretskii, 16577

Lars Ingebrigtsen [2022-02-21 17:20:54] wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> I haven't looked at the various code snippets that use the resulting
>>> regexps, but I imagine that some are matching on the full file name and
>>> some aren't?
>> I think the important case only has the nondirectory part of the file
>> name at hand, which is why I propose for "/<RE>" to be defined as
>> matching only on that part (with a terminating / if it's a directory).
> Oh, so this wouldn't be a plain regexp, but a ... mini-language where
> "/" has a special meaning?

Yup.

> I think that sounds pretty confusing.

It's not great, indeed.  But, AFAICT something like that is the only way
to introduce regexps into `completion-ignored-extensions` without having
to touch too much of the code using that variable.

> Hm.  I think it'd a more straightforward interface to just keep
> regexps out of it all, but I see the attraction of having a regexp
> interface, too.

There are several file name patterns I've wanted to ignore but couldn't
because enumerating them all is somewhere between inconvenient
and impossible (whereas a regexp would cover them easily).


        Stefan






^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-21 17:01                             ` Lars Ingebrigtsen
@ 2022-02-21 17:13                               ` Eli Zaretskii
  2022-02-21 17:36                                 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 28+ messages in thread
From: Eli Zaretskii @ 2022-02-21 17:13 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: vmalloc, rgm, 16577, monnier

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: monnier@iro.umontreal.ca,  rgm@gnu.org,  vmalloc@gmail.com,
>   16577@debbugs.gnu.org
> Date: Mon, 21 Feb 2022 18:01:03 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > Regular expressions don't understand file names, they are just strings
> > as far as regexps are concerned.
> 
> Of course they're strings, but a regexp operator has semantics.

I thought you were asking about some builtin feature of regexp
matches, and tried to explain why that doesn't exist.

If you are talking about something we should concoct, then I don't
think I see a problem expressing "match after / or at the start of the
string" in the regexp notation.  So why were you asking about it?





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: [External] : bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-21 17:01                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-02-21 17:33                           ` Drew Adams
  2022-02-22 13:17                           ` Lars Ingebrigtsen
  1 sibling, 0 replies; 28+ messages in thread
From: Drew Adams @ 2022-02-21 17:33 UTC (permalink / raw)
  To: Stefan Monnier, Lars Ingebrigtsen
  Cc: vmalloc@gmail.com, Glenn Morris, 16577@debbugs.gnu.org

> It's not great, indeed.  But, AFAICT something like that is the only way
> to introduce regexps into `completion-ignored-extensions`

Please don't introduce regexps into
`completion-ignored-extensions'.  This option
is designed to match file extensions literally.
And that's how it's used.  If you alternatively,
or also, need regexp matching, then add another
variable for that.

Lars claimed this:

   completion-ignored-extensions is used many
   places (and it's commonly used as a regexp)

No evidence given for that claim.  I asked for
examples of such "common" use.  None have been
cited.  Are there even _any_?






^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-21 17:13                               ` Eli Zaretskii
@ 2022-02-21 17:36                                 ` Lars Ingebrigtsen
  0 siblings, 0 replies; 28+ messages in thread
From: Lars Ingebrigtsen @ 2022-02-21 17:36 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: vmalloc, rgm, 16577, monnier

Eli Zaretskii <eliz@gnu.org> writes:

> If you are talking about something we should concoct, then I don't
> think I see a problem expressing "match after / or at the start of the
> string" in the regexp notation.  So why were you asking about it?

I was asking whether we had it, because \\(:?\\`\\|/\\) is a handful to
type.

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





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-21 17:01                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-02-21 17:33                           ` bug#16577: [External] : " Drew Adams
@ 2022-02-22 13:17                           ` Lars Ingebrigtsen
  2022-02-22 13:56                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 28+ messages in thread
From: Lars Ingebrigtsen @ 2022-02-22 13:17 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: vmalloc, Glenn Morris, 16577

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> There are several file name patterns I've wanted to ignore but couldn't
> because enumerating them all is somewhere between inconvenient
> and impossible (whereas a regexp would cover them easily).

I wonder whether it would be easier to add two new variables, but
perhaps that's excessive.

That is, completion-ignored-extensions as before, and
completion-ignored-files (a list of strings) and
completion-ignored-regexp (a regexp or a list of regexps).  The
advantage is that the semantics on all three variables would be pretty
self evident, and would require no special syntax anywhere.

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





^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-22 13:17                           ` Lars Ingebrigtsen
@ 2022-02-22 13:56                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-02-23 12:05                               ` Lars Ingebrigtsen
  0 siblings, 1 reply; 28+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-02-22 13:56 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: vmalloc, Glenn Morris, Eli Zaretskii, 16577

> That is, completion-ignored-extensions as before, and
> completion-ignored-files (a list of strings) and
> completion-ignored-regexp (a regexp or a list of regexps).  The
> advantage is that the semantics on all three variables would be pretty
> self evident, and would require no special syntax anywhere.

[ Not sure I'd bother with the non-regexp variable (other than having to
  use \\. to match a dot, a regexp should work just as well).  ]

This is the best way long term, yes.  We could mark
`completion-ignored-extensions` as obsolete and in a few years we're
back with a clean semantics and a simple variable.


        Stefan






^ permalink raw reply	[flat|nested] 28+ messages in thread

* bug#16577: Add regexp-based version of completion-ignored-extensions
  2022-02-22 13:56                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-02-23 12:05                               ` Lars Ingebrigtsen
  0 siblings, 0 replies; 28+ messages in thread
From: Lars Ingebrigtsen @ 2022-02-23 12:05 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: vmalloc, Glenn Morris, 16577

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> [ Not sure I'd bother with the non-regexp variable (other than having to
>   use \\. to match a dot, a regexp should work just as well).  ]

Well, the semantics for completion-ignored-files would be that they
match on file names (i.e., the part after the last "/" if there's any
slashes in there), which sounds like a pretty attractive thing, while
completion-ignored-files would have no anchoring.

completion-ignored-files could be regexps with anchoring, too, but then
we'd have two regexp variables, which seems excessive again.  :-/

> This is the best way long term, yes.  We could mark
> `completion-ignored-extensions` as obsolete and in a few years we're
> back with a clean semantics and a simple variable.

I like completion-ignored-extensions -- it's clear what it does and easy
to alter both programmatically and for users.

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





^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2022-02-23 12:05 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-28 11:15 bug#16577: 24.3; Ido omitting directories with similar names to other directories Rotem Yaari
2014-01-28 16:00 ` Eli Zaretskii
2014-01-28 17:18   ` Glenn Morris
2014-01-28 17:24     ` Eli Zaretskii
2014-01-28 17:35       ` Rotem Yaari
2014-01-28 17:39         ` Eli Zaretskii
2014-01-28 18:59       ` Glenn Morris
2014-01-28 19:17         ` Eli Zaretskii
2014-01-28 20:15           ` Glenn Morris
2014-01-28 21:39             ` Stefan Monnier
2014-01-29  2:43             ` Glenn Morris
2022-02-20 13:26               ` bug#16577: Add regexp-based version of completion-ignored-extensions Lars Ingebrigtsen
2022-02-20 15:06                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-02-20 22:05                   ` bug#16577: [External] : " Drew Adams
2022-02-21 14:00                   ` Lars Ingebrigtsen
2022-02-21 16:06                     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-02-21 16:20                       ` Lars Ingebrigtsen
2022-02-21 16:23                         ` Lars Ingebrigtsen
2022-02-21 16:57                           ` Eli Zaretskii
2022-02-21 17:01                             ` Lars Ingebrigtsen
2022-02-21 17:13                               ` Eli Zaretskii
2022-02-21 17:36                                 ` Lars Ingebrigtsen
2022-02-21 17:01                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-02-21 17:33                           ` bug#16577: [External] : " Drew Adams
2022-02-22 13:17                           ` Lars Ingebrigtsen
2022-02-22 13:56                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-02-23 12:05                               ` Lars Ingebrigtsen
2022-02-20 21:48                 ` bug#16577: [External] : " Drew Adams

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).