From debbugs-submit-bounces@debbugs.gnu.org Thu Oct 26 02:56:42 2017 Received: (at submit) by debbugs.gnu.org; 26 Oct 2017 06:56:42 +0000 Received: from localhost ([127.0.0.1]:33924 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e7c5p-0004P3-6b for submit@debbugs.gnu.org; Thu, 26 Oct 2017 02:56:42 -0400 Received: from eggs.gnu.org ([208.118.235.92]:45047) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e7c5m-0004Om-L1 for submit@debbugs.gnu.org; Thu, 26 Oct 2017 02:56:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e7c5e-0003fO-HS for submit@debbugs.gnu.org; Thu, 26 Oct 2017 02:56:33 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:39637) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e7c5e-0003fG-Bw for submit@debbugs.gnu.org; Thu, 26 Oct 2017 02:56:30 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36010) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e7c5a-0007YF-UQ for bug-gnu-emacs@gnu.org; Thu, 26 Oct 2017 02:56:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e7c5X-0003cd-P4 for bug-gnu-emacs@gnu.org; Thu, 26 Oct 2017 02:56:27 -0400 Received: from gateway-a.fh-trier.de ([143.93.54.181]:48348) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1e7c5X-0003Zf-4L for bug-gnu-emacs@gnu.org; Thu, 26 Oct 2017 02:56:23 -0400 X-Virus-Scanned: by Amavisd-new + Sophos + ClamAV [Rechenzentrum Hochschule Trier (RZ/HT)] Received: from localhost (ip5886048c.dynamic.kabel-deutschland.de [88.134.4.140]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: politza) by gateway-a.fh-trier.de (Postfix) with ESMTPSA id 8D4B417B0263 for ; Thu, 26 Oct 2017 08:56:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha1; c=simple/simple; d=hochschule-trier.de; s=default; t=1509000978; bh=qEU5hpC57DpLyJbj3JzqWoU/JfQ=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=rMhxd8nsqmfSMlODd6/7K8rghkZTgUW3ao2rlF/G/nUXZp7E4/Kx9Q7sWEMvmSDf+ oRB7x7YcvAEXuRQJ2WPggPp6sHINkZYvknKUOkBnjbGxND6Hb8Vl1USZgxoOAjLdoK wwmGScwyRZw1pPbP57wppoLyZV++IEA/tz+yFfkk= From: Andreas Politz To: bug-gnu-emacs@gnu.org Subject: 25.3; [PATCH] Make filecache use extended completion Date: Thu, 26 Oct 2017 08:56:16 +0200 Message-ID: <87k1zi75yn.fsf@hochschule-trier.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --=-=-= Content-Type: text/plain As it is, file-cache-minibuffer-complete uses prefix completion via {try,all}-completion only, which makes it less convenient. The patch below adds calls to completion-{try,all}-completion. --=-=-= Content-Type: text/x-diff Content-Disposition: inline Content-Description: file-cache-minibuffer-complete diff --git a/lisp/filecache.el b/lisp/filecache.el index 38a434b11b..aac4f488cd 100644 --- a/lisp/filecache.el +++ b/lisp/filecache.el @@ -566,68 +566,67 @@ file-cache-minibuffer-complete the name is considered already unique; only the second substitution \(directories) is done." (interactive "P") - (let* - ( - (completion-ignore-case file-cache-completion-ignore-case) - (case-fold-search file-cache-case-fold-search) - (string (file-name-nondirectory (minibuffer-contents))) - (completion-string (try-completion string file-cache-alist)) - (completion-list) - (len) - (file-cache-string)) + (let* ((completion-ignore-case file-cache-completion-ignore-case) + (case-fold-search file-cache-case-fold-search) + (string (file-name-nondirectory (minibuffer-contents))) + (completion (completion-try-completion + string file-cache-alist nil 0))) (cond ;; If it's the only match, replace the original contents - ((or arg (eq completion-string t)) - (setq file-cache-string (file-cache-file-name string)) - (if (string= file-cache-string (minibuffer-contents)) - (minibuffer-message file-cache-sole-match-message) - (delete-minibuffer-contents) - (insert file-cache-string) - (if file-cache-multiple-directory-message - (minibuffer-message file-cache-multiple-directory-message)))) + ((or arg (eq completion t)) + (let ((file-name (file-cache-file-name string))) + (if (string= file-name (minibuffer-contents)) + (minibuffer-message file-cache-sole-match-message) + (delete-minibuffer-contents) + (insert file-name) + (if file-cache-multiple-directory-message + (minibuffer-message file-cache-multiple-directory-message))))) ;; If it's the longest match, insert it - ((stringp completion-string) - ;; If we've already inserted a unique string, see if the user - ;; wants to use that one - (if (and (string= string completion-string) - (assoc-string string file-cache-alist - file-cache-ignore-case)) - (if (and (eq last-command this-command) - (string= file-cache-last-completion completion-string)) - (progn - (delete-minibuffer-contents) - (insert (file-cache-file-name completion-string)) - (setq file-cache-last-completion nil)) - (minibuffer-message file-cache-non-unique-message) - (setq file-cache-last-completion string)) - (setq file-cache-last-completion string) - (setq completion-list (all-completions string file-cache-alist) - len (length completion-list)) - (if (> len 1) - (progn - (goto-char (point-max)) - (insert - (substring completion-string (length string))) - ;; Add our own setup function to the Completions Buffer - (let ((completion-setup-hook - (append completion-setup-hook - (list 'file-cache-completion-setup-function)))) - (with-output-to-temp-buffer file-cache-completions-buffer - (display-completion-list - (completion-hilit-commonality completion-list - (length string)))))) - (setq file-cache-string (file-cache-file-name completion-string)) - (if (string= file-cache-string (minibuffer-contents)) - (minibuffer-message file-cache-sole-match-message) - (delete-minibuffer-contents) - (insert file-cache-string) - (if file-cache-multiple-directory-message - (minibuffer-message file-cache-multiple-directory-message))) - ))) + ((consp completion) + (let ((newstring (car completion)) + (newpoint (cdr completion))) + ;; If we've already inserted a unique string, see if the user + ;; wants to use that one + (if (and (string= string newstring) + (assoc-string string file-cache-alist + file-cache-ignore-case)) + (if (and (eq last-command this-command) + (string= file-cache-last-completion newstring)) + (progn + (delete-minibuffer-contents) + (insert (file-cache-file-name newstring)) + (setq file-cache-last-completion nil)) + (minibuffer-message file-cache-non-unique-message) + (setq file-cache-last-completion string)) + (setq file-cache-last-completion string) + (let* ((completion-list (completion-all-completions + newstring file-cache-alist nil newpoint)) + (base-size (cdr (last completion-list)))) + (when base-size + (setcdr (last completion-list) nil)) + (if (> (length completion-list) 1) + (progn + (delete-region (- (point-max) (length string)) (point-max)) + (save-excursion (insert newstring)) + (forward-char newpoint) + ;; Add our own setup function to the Completions Buffer + (let ((completion-setup-hook + (append completion-setup-hook + (list 'file-cache-completion-setup-function)))) + (with-output-to-temp-buffer file-cache-completions-buffer + (display-completion-list + (completion-hilit-commonality completion-list newpoint))))) + (let ((file-name (file-cache-file-name newstring))) + (if (string= file-name (minibuffer-contents)) + (minibuffer-message file-cache-sole-match-message) + (delete-minibuffer-contents) + (insert file-name) + (if file-cache-multiple-directory-message + (minibuffer-message file-cache-multiple-directory-message))))))))) ;; No match - ((eq completion-string nil) + ((eq completion nil) (minibuffer-message file-cache-no-match-message))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; --=-=-= Content-Type: text/plain -ap In GNU Emacs 25.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.19) of 2017-09-16 built on juergen Windowing system distributor 'The X.Org Foundation', version 11.0.11905000 System Description: Arch Linux Configured using: 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --localstatedir=/var --with-x-toolkit=gtk3 --with-xft --with-modules 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt' CPPFLAGS=-D_FORTIFY_SOURCE=2 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Org Minor modes in effect: shell-dirtrack-mode: t TeX-PDF-mode: t pdf-occur-global-minor-mode: t sane/sync-mail-mode: t override-global-mode: t savehist-mode: t diff-auto-refine-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-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 auto-fill-function: org-auto-fill-function transient-mark-mode: t Recent messages: Wrote /home/politza/.emacs.d/etc/init.org Mark set Press C-c C-c when you are done editing. Enter a change comment. Type C-c C-c when done Checking in /home/politza/.emacs.d/etc/init.org...done Mark set Saved text until "message file-cache-no-match-message)))))" Finding changes in /home/politza/.emacs.d/etc/init.org... No changes between working revision and workfile Making completion list... Load-path shadows: /home/politza/.emacs.d/usr/elpa/org-20170814/ob-latex hides /usr/share/emacs/25.3/lisp/org/ob-latex /home/politza/.emacs.d/usr/elpa/org-20170814/org-mobile hides /usr/share/emacs/25.3/lisp/org/org-mobile /home/politza/.emacs.d/usr/elpa/org-20170814/ob-screen hides /usr/share/emacs/25.3/lisp/org/ob-screen /home/politza/.emacs.d/usr/elpa/org-20170814/org-plot hides /usr/share/emacs/25.3/lisp/org/org-plot /home/politza/.emacs.d/usr/elpa/org-20170814/org-capture hides /usr/share/emacs/25.3/lisp/org/org-capture /home/politza/.emacs.d/usr/elpa/org-20170814/ob-org hides /usr/share/emacs/25.3/lisp/org/ob-org /home/politza/.emacs.d/usr/elpa/org-20170814/ox-ascii hides /usr/share/emacs/25.3/lisp/org/ox-ascii /home/politza/.emacs.d/usr/elpa/org-20170814/org-agenda hides /usr/share/emacs/25.3/lisp/org/org-agenda /home/politza/.emacs.d/usr/elpa/org-20170814/org-protocol hides /usr/share/emacs/25.3/lisp/org/org-protocol /home/politza/.emacs.d/usr/elpa/org-20170814/ox-icalendar hides /usr/share/emacs/25.3/lisp/org/ox-icalendar /home/politza/.emacs.d/usr/elpa/org-20170814/org-gnus hides /usr/share/emacs/25.3/lisp/org/org-gnus /home/politza/.emacs.d/usr/elpa/org-20170814/ob-io hides /usr/share/emacs/25.3/lisp/org/ob-io /home/politza/.emacs.d/usr/elpa/org-20170814/ob-comint hides /usr/share/emacs/25.3/lisp/org/ob-comint /home/politza/.emacs.d/usr/elpa/org-20170814/ob-matlab hides /usr/share/emacs/25.3/lisp/org/ob-matlab /home/politza/.emacs.d/usr/elpa/org-20170814/org-compat hides /usr/share/emacs/25.3/lisp/org/org-compat /home/politza/.emacs.d/usr/elpa/org-20170814/org-src hides /usr/share/emacs/25.3/lisp/org/org-src /home/politza/.emacs.d/usr/elpa/org-20170814/ob-ditaa hides /usr/share/emacs/25.3/lisp/org/ob-ditaa /home/politza/.emacs.d/usr/elpa/org-20170814/org-bibtex hides /usr/share/emacs/25.3/lisp/org/org-bibtex /home/politza/.emacs.d/usr/elpa/org-20170814/org-feed hides /usr/share/emacs/25.3/lisp/org/org-feed /home/politza/.emacs.d/usr/elpa/org-20170814/org-bbdb hides /usr/share/emacs/25.3/lisp/org/org-bbdb /home/politza/.emacs.d/usr/elpa/org-20170814/ox-texinfo hides /usr/share/emacs/25.3/lisp/org/ox-texinfo /home/politza/.emacs.d/usr/elpa/org-20170814/org-entities hides /usr/share/emacs/25.3/lisp/org/org-entities /home/politza/.emacs.d/usr/elpa/org-20170814/ob-css hides /usr/share/emacs/25.3/lisp/org/ob-css /home/politza/.emacs.d/usr/elpa/org-20170814/org-macro hides /usr/share/emacs/25.3/lisp/org/org-macro /home/politza/.emacs.d/usr/elpa/org-20170814/org-crypt hides /usr/share/emacs/25.3/lisp/org/org-crypt /home/politza/.emacs.d/usr/elpa/org-20170814/ob-core hides /usr/share/emacs/25.3/lisp/org/ob-core /home/politza/.emacs.d/usr/elpa/org-20170814/ox-latex hides /usr/share/emacs/25.3/lisp/org/ox-latex /home/politza/.emacs.d/usr/elpa/org-20170814/ob-sass hides /usr/share/emacs/25.3/lisp/org/ob-sass /home/politza/.emacs.d/usr/elpa/org-20170814/org-mouse hides /usr/share/emacs/25.3/lisp/org/org-mouse /home/politza/.emacs.d/usr/elpa/org-20170814/org-info hides /usr/share/emacs/25.3/lisp/org/org-info /home/politza/.emacs.d/usr/elpa/org-20170814/ob-shen hides /usr/share/emacs/25.3/lisp/org/ob-shen /home/politza/.emacs.d/usr/elpa/org-20170814/ob-sql hides /usr/share/emacs/25.3/lisp/org/ob-sql /home/politza/.emacs.d/usr/elpa/org-20170814/ox-html hides /usr/share/emacs/25.3/lisp/org/ox-html /home/politza/.emacs.d/usr/elpa/org-20170814/ob-makefile hides /usr/share/emacs/25.3/lisp/org/ob-makefile /home/politza/.emacs.d/usr/elpa/org-20170814/org-colview hides /usr/share/emacs/25.3/lisp/org/org-colview /home/politza/.emacs.d/usr/elpa/org-20170814/ob-plantuml hides /usr/share/emacs/25.3/lisp/org/ob-plantuml /home/politza/.emacs.d/usr/elpa/org-20170814/ob-scheme hides /usr/share/emacs/25.3/lisp/org/ob-scheme /home/politza/.emacs.d/usr/elpa/org-20170814/ob-ref hides /usr/share/emacs/25.3/lisp/org/ob-ref /home/politza/.emacs.d/usr/elpa/org-20170814/ob-picolisp hides /usr/share/emacs/25.3/lisp/org/ob-picolisp /home/politza/.emacs.d/usr/elpa/org-20170814/ob hides /usr/share/emacs/25.3/lisp/org/ob /home/politza/.emacs.d/usr/elpa/org-20170814/ob-js hides /usr/share/emacs/25.3/lisp/org/ob-js /home/politza/.emacs.d/usr/elpa/org-20170814/ob-octave hides /usr/share/emacs/25.3/lisp/org/ob-octave /home/politza/.emacs.d/usr/elpa/org-20170814/ob-calc hides /usr/share/emacs/25.3/lisp/org/ob-calc /home/politza/.emacs.d/usr/elpa/org-20170814/ob-eval hides /usr/share/emacs/25.3/lisp/org/ob-eval /home/politza/.emacs.d/usr/elpa/org-20170814/org-indent hides /usr/share/emacs/25.3/lisp/org/org-indent /home/politza/.emacs.d/usr/elpa/org-20170814/org-eshell hides /usr/share/emacs/25.3/lisp/org/org-eshell /home/politza/.emacs.d/usr/elpa/org-20170814/ob-mscgen hides /usr/share/emacs/25.3/lisp/org/ob-mscgen /home/politza/.emacs.d/usr/elpa/org-20170814/ob-C hides /usr/share/emacs/25.3/lisp/org/ob-C /home/politza/.emacs.d/usr/elpa/org-20170814/org-list hides /usr/share/emacs/25.3/lisp/org/org-list /home/politza/.emacs.d/usr/elpa/org-20170814/ob-lisp hides /usr/share/emacs/25.3/lisp/org/ob-lisp /home/politza/.emacs.d/usr/elpa/org-20170814/ox-publish hides /usr/share/emacs/25.3/lisp/org/ox-publish /home/politza/.emacs.d/usr/elpa/org-20170814/org-docview hides /usr/share/emacs/25.3/lisp/org/org-docview /home/politza/.emacs.d/usr/elpa/org-20170814/ob-keys hides /usr/share/emacs/25.3/lisp/org/ob-keys /home/politza/.emacs.d/usr/elpa/org-20170814/ox-org hides /usr/share/emacs/25.3/lisp/org/ox-org /home/politza/.emacs.d/usr/elpa/org-20170814/ob-asymptote hides /usr/share/emacs/25.3/lisp/org/ob-asymptote /home/politza/.emacs.d/usr/elpa/org-20170814/ob-ocaml hides /usr/share/emacs/25.3/lisp/org/ob-ocaml /home/politza/.emacs.d/usr/elpa/org-20170814/org-loaddefs hides /usr/share/emacs/25.3/lisp/org/org-loaddefs /home/politza/.emacs.d/usr/elpa/org-20170814/org-habit hides /usr/share/emacs/25.3/lisp/org/org-habit /home/politza/.emacs.d/usr/elpa/org-20170814/org-clock hides /usr/share/emacs/25.3/lisp/org/org-clock /home/politza/.emacs.d/usr/elpa/org-20170814/org-pcomplete hides /usr/share/emacs/25.3/lisp/org/org-pcomplete /home/politza/.emacs.d/usr/elpa/org-20170814/ob-lilypond hides /usr/share/emacs/25.3/lisp/org/ob-lilypond /home/politza/.emacs.d/usr/elpa/org-20170814/ob-tangle hides /usr/share/emacs/25.3/lisp/org/ob-tangle /home/politza/.emacs.d/usr/elpa/org-20170814/ob-dot hides /usr/share/emacs/25.3/lisp/org/ob-dot /home/politza/.emacs.d/usr/elpa/org-20170814/ox hides /usr/share/emacs/25.3/lisp/org/ox /home/politza/.emacs.d/usr/elpa/org-20170814/ob-python hides /usr/share/emacs/25.3/lisp/org/ob-python /home/politza/.emacs.d/usr/elpa/org-20170814/org-macs hides /usr/share/emacs/25.3/lisp/org/org-macs /home/politza/.emacs.d/usr/elpa/org-20170814/org-id hides /usr/share/emacs/25.3/lisp/org/org-id /home/politza/.emacs.d/usr/elpa/org-20170814/ob-clojure hides /usr/share/emacs/25.3/lisp/org/ob-clojure /home/politza/.emacs.d/usr/elpa/org-20170814/ob-perl hides /usr/share/emacs/25.3/lisp/org/ob-perl /home/politza/.emacs.d/usr/elpa/org-20170814/org-w3m hides /usr/share/emacs/25.3/lisp/org/org-w3m /home/politza/.emacs.d/usr/elpa/org-20170814/ox-md hides /usr/share/emacs/25.3/lisp/org/ox-md /home/politza/.emacs.d/usr/elpa/org-20170814/org-mhe hides /usr/share/emacs/25.3/lisp/org/org-mhe /home/politza/.emacs.d/usr/elpa/org-20170814/org-attach hides /usr/share/emacs/25.3/lisp/org/org-attach /home/politza/.emacs.d/usr/elpa/org-20170814/org-datetree hides /usr/share/emacs/25.3/lisp/org/org-datetree /home/politza/.emacs.d/usr/elpa/org-20170814/ob-ledger hides /usr/share/emacs/25.3/lisp/org/ob-ledger /home/politza/.emacs.d/usr/elpa/org-20170814/ob-lob hides /usr/share/emacs/25.3/lisp/org/ob-lob /home/politza/.emacs.d/usr/elpa/org-20170814/org-table hides /usr/share/emacs/25.3/lisp/org/org-table /home/politza/.emacs.d/usr/elpa/org-20170814/org-archive hides /usr/share/emacs/25.3/lisp/org/org-archive /home/politza/.emacs.d/usr/elpa/org-20170814/org-version hides /usr/share/emacs/25.3/lisp/org/org-version /home/politza/.emacs.d/usr/elpa/org-20170814/ob-awk hides /usr/share/emacs/25.3/lisp/org/ob-awk /home/politza/.emacs.d/usr/elpa/org-20170814/ox-odt hides /usr/share/emacs/25.3/lisp/org/ox-odt /home/politza/.emacs.d/usr/elpa/org-20170814/ob-maxima hides /usr/share/emacs/25.3/lisp/org/ob-maxima /home/politza/.emacs.d/usr/elpa/org-20170814/org-footnote hides /usr/share/emacs/25.3/lisp/org/org-footnote /home/politza/.emacs.d/usr/elpa/org-20170814/org-irc hides /usr/share/emacs/25.3/lisp/org/org-irc /home/politza/.emacs.d/usr/elpa/org-20170814/org-ctags hides /usr/share/emacs/25.3/lisp/org/org-ctags /home/politza/.emacs.d/usr/elpa/org-20170814/org-install hides /usr/share/emacs/25.3/lisp/org/org-install /home/politza/.emacs.d/usr/elpa/org-20170814/org hides /usr/share/emacs/25.3/lisp/org/org /home/politza/.emacs.d/usr/elpa/org-20170814/ob-java hides /usr/share/emacs/25.3/lisp/org/ob-java /home/politza/.emacs.d/usr/elpa/org-20170814/ob-emacs-lisp hides /usr/share/emacs/25.3/lisp/org/ob-emacs-lisp /home/politza/.emacs.d/usr/elpa/org-20170814/ox-man hides /usr/share/emacs/25.3/lisp/org/ox-man /home/politza/.emacs.d/usr/elpa/org-20170814/ob-scala hides /usr/share/emacs/25.3/lisp/org/ob-scala /home/politza/.emacs.d/usr/elpa/org-20170814/ox-beamer hides /usr/share/emacs/25.3/lisp/org/ox-beamer /home/politza/.emacs.d/usr/elpa/org-20170814/ob-sqlite hides /usr/share/emacs/25.3/lisp/org/ob-sqlite /home/politza/.emacs.d/usr/elpa/org-20170814/ob-exp hides /usr/share/emacs/25.3/lisp/org/ob-exp /home/politza/.emacs.d/usr/elpa/org-20170814/ob-haskell hides /usr/share/emacs/25.3/lisp/org/ob-haskell /home/politza/.emacs.d/usr/elpa/org-20170814/ob-gnuplot hides /usr/share/emacs/25.3/lisp/org/ob-gnuplot /home/politza/.emacs.d/usr/elpa/org-20170814/ob-ruby hides /usr/share/emacs/25.3/lisp/org/ob-ruby /home/politza/.emacs.d/usr/elpa/org-20170814/org-inlinetask hides /usr/share/emacs/25.3/lisp/org/org-inlinetask /home/politza/.emacs.d/usr/elpa/org-20170814/org-timer hides /usr/share/emacs/25.3/lisp/org/org-timer /home/politza/.emacs.d/usr/elpa/org-20170814/ob-R hides /usr/share/emacs/25.3/lisp/org/ob-R /home/politza/.emacs.d/usr/elpa/org-20170814/ob-table hides /usr/share/emacs/25.3/lisp/org/ob-table /home/politza/.emacs.d/usr/elpa/org-20170814/org-rmail hides /usr/share/emacs/25.3/lisp/org/org-rmail /home/politza/.emacs.d/usr/elpa/org-20170814/org-element hides /usr/share/emacs/25.3/lisp/org/org-element /home/politza/.emacs.d/usr/elpa/org-20170814/ob-fortran hides /usr/share/emacs/25.3/lisp/org/ob-fortran /home/politza/.emacs.d/usr/elpa/org-20170814/org-faces hides /usr/share/emacs/25.3/lisp/org/org-faces Features: (shadow emacsbug sendmail ispell log-edit pcvs-util add-log edebug debug dabbrev apropos nnir url-util url-parse url-vars shr-color color shr dom browse-url preview prv-emacs tex-buf font-latex latex tex-ispell tex-style tex-mode latexenc 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 flow-fill sort smiley gnus-cite mm-archive mail-extr gnus-async gnus-bcklg qp gnus-ml disp-table nndraft nnmh utf-7 network-stream nsm starttls nnfolder nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap nntp gnus-cache gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source tls gnutls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range message idna rfc822 mml mml-sec epg mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus gnus-ems nnheader mail-utils org-table pdf-sync pdf-annot pdf-outline pdf-links pdf-history tabify eieio-opt speedbar sb-image ezimage dframe pulse dired-aux smerge-mode whitespace vc vc-dispatcher misearch multi-isearch company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-dabbrev company-files company-capf company-cmake company-xcode company-clang company-semantic company-eclim company-template company-css company-nxml company-bbdb racer thingatpt f s etags xref project dash view tramp-cmds tramp-cache tramp-sh tramp tramp-compat auth-source mm-util help-fns mail-prsvr tramp-loaddefs trampver ucs-normalize shell filecache company rust-mode json map gud ediff-merg ediff-wind ediff-diff ediff-mult ediff-help ediff-init ediff-util ediff tex dbus xml crm pdf-occur ibuf-ext ibuffer tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw eieio eieio-core cl-macs mode-local cedet pdf-isearch let-alist pdf-misc imenu pdf-tools cus-edit cus-start cus-load wid-edit pdf-view password-cache bookmark pp pdf-cache pdf-info tq pdf-util restart-emacs desktop frameset tsdh-dark-theme completion-dyninit edmacro kmacro man use-package diminish bind-key rx server savehist vc-git diff-mode org-rmail org-mhe org-irc org-info org-gnus gnus-util org-docview doc-view subr-x jka-compr image-mode dired org-bibtex bibtex org-bbdb org-w3m org-element cl-seq avl-tree org advice org-macro org-footnote org-pcomplete pcomplete org-list org-faces org-entities noutline outline easy-mmode 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 format-spec find-func cal-menu calendar cal-loaddefs compile comint ansi-color ring finder-inf tex-site info package epg-config seq byte-opt gv bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs pcase cl-lib time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame 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 charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer 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 dbusbind inotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 644433 74788) (symbols 48 57971 0) (miscs 40 1356 1667) (strings 32 158027 13031) (string-bytes 1 5412591) (vectors 16 86481) (vector-slots 8 1967783 42765) (floats 8 1471 869) (intervals 56 8047 954) (buffers 976 95)) --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 03 05:56:25 2017 Received: (at 29007) by debbugs.gnu.org; 3 Nov 2017 09:56:25 +0000 Received: from localhost ([127.0.0.1]:48730 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eAYi8-0000Ob-8a for submit@debbugs.gnu.org; Fri, 03 Nov 2017 05:56:25 -0400 Received: from eggs.gnu.org ([208.118.235.92]:44870) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eAYi6-0000OO-7J for 29007@debbugs.gnu.org; Fri, 03 Nov 2017 05:56:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eAYhx-0006Lh-Qu for 29007@debbugs.gnu.org; Fri, 03 Nov 2017 05:56:17 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:44665) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eAYhx-0006LU-NA; Fri, 03 Nov 2017 05:56:13 -0400 Received: from [176.228.60.248] (port=1702 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eAYhw-0000JZ-0m; Fri, 03 Nov 2017 05:56:12 -0400 Date: Fri, 03 Nov 2017 11:56:10 +0200 Message-Id: <83wp37vg79.fsf@gnu.org> From: Eli Zaretskii To: Andreas Politz In-reply-to: <87k1zi75yn.fsf@hochschule-trier.de> (message from Andreas Politz on Thu, 26 Oct 2017 08:56:16 +0200) Subject: Re: bug#29007: 25.3; [PATCH] Make filecache use extended completion References: <87k1zi75yn.fsf@hochschule-trier.de> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 29007 Cc: 29007@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Andreas Politz > Date: Thu, 26 Oct 2017 08:56:16 +0200 > > As it is, file-cache-minibuffer-complete uses prefix completion via > {try,all}-completion only, which makes it less convenient. The patch > below adds calls to completion-{try,all}-completion. Can you please elaborate how this change makes the feature more convenient? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 03 13:12:15 2017 Received: (at 29007) by debbugs.gnu.org; 3 Nov 2017 17:12:15 +0000 Received: from localhost ([127.0.0.1]:49796 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eAfVv-0006ce-Js for submit@debbugs.gnu.org; Fri, 03 Nov 2017 13:12:15 -0400 Received: from gateway-a.fh-trier.de ([143.93.54.181]:34218) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eAfVt-0006cL-5V for 29007@debbugs.gnu.org; Fri, 03 Nov 2017 13:12:13 -0400 X-Virus-Scanned: by Amavisd-new + Sophos + ClamAV [Rechenzentrum Hochschule Trier (RZ/HT)] Received: from localhost (ip5886048c.dynamic.kabel-deutschland.de [88.134.4.140]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: politza) by gateway-a.fh-trier.de (Postfix) with ESMTPSA id C578A17B091A; Fri, 3 Nov 2017 18:12:04 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha1; c=simple/simple; d=hochschule-trier.de; s=default; t=1509729124; bh=v/Sb+uaJZpzWO9wNgqKbJBnQBbI=; h=From:To:Cc:Subject:References:Date:In-Reply-To:Message-ID: MIME-Version:Content-Type; b=k9PzlNvgxPIyH9fHDHtkgvd3J7ImpVIfG1/ncdfFj9gP9RYZUvaiofKxixVnIMlKC v/lAiBbcczl8y2Q72VaDnA6+4Corb52CZRIsUg4qLOhiGkDu5MJzOZZ/nRxcAXX5rU xq/3eee16E3Z2gSZERuH78I2IsD/wbaNBr1G7l7k= From: Andreas Politz To: Eli Zaretskii Subject: Re: bug#29007: 25.3; [PATCH] Make filecache use extended completion References: <87k1zi75yn.fsf@hochschule-trier.de> <83wp37vg79.fsf@gnu.org> Date: Fri, 03 Nov 2017 18:12:04 +0100 In-Reply-To: <83wp37vg79.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 03 Nov 2017 11:56:10 +0200") Message-ID: <878tfn478b.fsf@hochschule-trier.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 29007 Cc: 29007@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Is there a reason why that function should keep using the ancient completion mechanism ? -ap From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 03 15:19:14 2017 Received: (at 29007) by debbugs.gnu.org; 3 Nov 2017 19:19:14 +0000 Received: from localhost ([127.0.0.1]:49853 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eAhUn-0001Bz-PH for submit@debbugs.gnu.org; Fri, 03 Nov 2017 15:19:13 -0400 Received: from eggs.gnu.org ([208.118.235.92]:45544) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eAhUm-0001Bh-74 for 29007@debbugs.gnu.org; Fri, 03 Nov 2017 15:19:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eAhUd-0000MS-Vv for 29007@debbugs.gnu.org; Fri, 03 Nov 2017 15:19:07 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:33799) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eAhUd-0000M6-SA; Fri, 03 Nov 2017 15:19:03 -0400 Received: from [176.228.60.248] (port=2398 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eAhUd-0004wy-9v; Fri, 03 Nov 2017 15:19:03 -0400 Date: Fri, 03 Nov 2017 21:19:03 +0200 Message-Id: <83fu9vuq54.fsf@gnu.org> From: Eli Zaretskii To: Andreas Politz In-reply-to: <878tfn478b.fsf@hochschule-trier.de> (message from Andreas Politz on Fri, 03 Nov 2017 18:12:04 +0100) Subject: Re: bug#29007: 25.3; [PATCH] Make filecache use extended completion References: <87k1zi75yn.fsf@hochschule-trier.de> <83wp37vg79.fsf@gnu.org> <878tfn478b.fsf@hochschule-trier.de> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 29007 Cc: 29007@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Andreas Politz > Cc: 29007@debbugs.gnu.org > Date: Fri, 03 Nov 2017 18:12:04 +0100 > > Is there a reason why that function should keep using the ancient > completion mechanism ? Sorry, I don't understand the implications of this question. Your original report said the current code causes inconvenience, so I'd like to understand more the nature of this inconvenience, and how the modified code makes this feature more convenient. I'm not saying I'm opposed to your changes, I'm just asking for additional information to make up my mind about it. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 04 13:44:53 2017 Received: (at 29007) by debbugs.gnu.org; 4 Nov 2017 17:44:53 +0000 Received: from localhost ([127.0.0.1]:50886 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eB2V2-0003FI-UM for submit@debbugs.gnu.org; Sat, 04 Nov 2017 13:44:53 -0400 Received: from gateway-a.fh-trier.de ([143.93.54.181]:35681) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eB2V1-0003F5-R8 for 29007@debbugs.gnu.org; Sat, 04 Nov 2017 13:44:52 -0400 X-Virus-Scanned: by Amavisd-new + Sophos + ClamAV [Rechenzentrum Hochschule Trier (RZ/HT)] Received: from localhost (ip5886048c.dynamic.kabel-deutschland.de [88.134.4.140]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: politza) by gateway-a.fh-trier.de (Postfix) with ESMTPSA id 5E08517A8977; Sat, 4 Nov 2017 18:44:44 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha1; c=simple/simple; d=hochschule-trier.de; s=default; t=1509817484; bh=J69lVBRXfL5z9PL0xEWg1cA95LY=; h=From:To:Cc:Subject:References:Date:In-Reply-To:Message-ID: MIME-Version:Content-Type; b=kGPNvnHgLB6lihxONYhwfgaXyDe42M6descMdbINULAnmm1J2jooLy+0QQWpk1zrf 2ksK4E+EqUSCoRtMPtHlo5mwKbyZ75IlY1Su1IK8/p9ZdOtK57vY+g/b9ZrNM5i2at J2xI3ZtZr/7ccA41OyewwCWecqm3oKjlhhVaynBA= From: Andreas Politz To: Eli Zaretskii Subject: Re: bug#29007: 25.3; [PATCH] Make filecache use extended completion References: <87k1zi75yn.fsf@hochschule-trier.de> <83wp37vg79.fsf@gnu.org> <878tfn478b.fsf@hochschule-trier.de> <83fu9vuq54.fsf@gnu.org> Date: Sat, 04 Nov 2017 18:44:43 +0100 In-Reply-To: <83fu9vuq54.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 03 Nov 2017 21:19:03 +0200") Message-ID: <874lqa3pmc.fsf@hochschule-trier.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 29007 Cc: 29007@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) OK, I'll elaborate. Currently, file-cache-minibuffer-complete does longest-prefix completion via all-completions only, instead of completion-all-completions, which completes according to the completion-styles variable. And here are some cases where this behavior is inconvenient or even insufficient, when trying to open some file via `C-x C-f C-TAB'. 1. Opening some file from the file-cache, without remembering the exact prefix. Example: You only remember that the file ends in '-foo.el'. 2. Opening some file, while the file-cache contains many files having the same prefix. Example: The cache contains the following files. aaa.a aab.b aba.c abb.d baa.e bab.f bba.g bbb.h Here prefix completion is basically useless, but entering the unique suffix and using substring completion immediately completes to the unique match. -ap From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 04 14:23:33 2017 Received: (at 29007) by debbugs.gnu.org; 4 Nov 2017 18:23:33 +0000 Received: from localhost ([127.0.0.1]:50901 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eB36S-00047G-98 for submit@debbugs.gnu.org; Sat, 04 Nov 2017 14:23:33 -0400 Received: from eggs.gnu.org ([208.118.235.92]:32937) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eB36Q-000473-13 for 29007@debbugs.gnu.org; Sat, 04 Nov 2017 14:23:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eB36H-0003IO-P8 for 29007@debbugs.gnu.org; Sat, 04 Nov 2017 14:23:24 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_40,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:48446) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eB36H-0003IJ-LG; Sat, 04 Nov 2017 14:23:21 -0400 Received: from [176.228.60.248] (port=4605 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eB36F-0007In-Ot; Sat, 04 Nov 2017 14:23:21 -0400 Date: Sat, 04 Nov 2017 20:23:13 +0200 Message-Id: <83d14xucmm.fsf@gnu.org> From: Eli Zaretskii To: Andreas Politz In-reply-to: <874lqa3pmc.fsf@hochschule-trier.de> (message from Andreas Politz on Sat, 04 Nov 2017 18:44:43 +0100) Subject: Re: bug#29007: 25.3; [PATCH] Make filecache use extended completion References: <87k1zi75yn.fsf@hochschule-trier.de> <83wp37vg79.fsf@gnu.org> <878tfn478b.fsf@hochschule-trier.de> <83fu9vuq54.fsf@gnu.org> <874lqa3pmc.fsf@hochschule-trier.de> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 29007 Cc: 29007@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Andreas Politz > Cc: 29007@debbugs.gnu.org > Date: Sat, 04 Nov 2017 18:44:43 +0100 > > Currently, file-cache-minibuffer-complete does longest-prefix completion > via all-completions only, instead of completion-all-completions, which > completes according to the completion-styles variable. And here are > some cases where this behavior is inconvenient or even insufficient, > when trying to open some file via `C-x C-f C-TAB'. > > 1. Opening some file from the file-cache, without remembering the exact > prefix. > > Example: You only remember that the file ends in '-foo.el'. > > 2. Opening some file, while the file-cache contains many files having the > same prefix. > > Example: The cache contains the following files. > > aaa.a > aab.b > aba.c > abb.d > baa.e > bab.f > bba.g > bbb.h > > Here prefix completion is basically useless, but entering the unique > suffix and using substring completion immediately completes to the > unique match. Thanks. I think your patch is good for the master branch, but I think it should include a NEWS entry about the change. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 04 15:31:53 2017 Received: (at 29007) by debbugs.gnu.org; 4 Nov 2017 19:31:53 +0000 Received: from localhost ([127.0.0.1]:50935 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eB4Aa-0005ei-Vy for submit@debbugs.gnu.org; Sat, 04 Nov 2017 15:31:53 -0400 Received: from gateway-a.fh-trier.de ([143.93.54.181]:37689) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eB4AY-0005eU-CP for 29007@debbugs.gnu.org; Sat, 04 Nov 2017 15:31:51 -0400 X-Virus-Scanned: by Amavisd-new + Sophos + ClamAV [Rechenzentrum Hochschule Trier (RZ/HT)] Received: from localhost (ip5886048c.dynamic.kabel-deutschland.de [88.134.4.140]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: politza) by gateway-a.fh-trier.de (Postfix) with ESMTPSA id CF12717B0AD3; Sat, 4 Nov 2017 20:31:42 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha1; c=simple/simple; d=hochschule-trier.de; s=default; t=1509823903; bh=V4CJbXSoB4bz8K+q065djdEaoGM=; h=From:To:Cc:Subject:References:Date:In-Reply-To:Message-ID: MIME-Version:Content-Type; b=js3T+TJJ6mm7jNErYgj2GeCnXnSZYxUqgesX0tDhhCQ8K6cLTh/pp0mAKjkid+yks inliV9JRAysnqOd1IClANT7MlaNgL/9GHzT+/nC6V16rcXodXD96EFp+UY6iuWcJzh S/TnTIssumbGRonHuwn5CI5OkLu2s2tJ4s+WEnes= From: Andreas Politz To: Eli Zaretskii Subject: Re: bug#29007: 25.3; [PATCH] Make filecache use extended completion References: <87k1zi75yn.fsf@hochschule-trier.de> <83wp37vg79.fsf@gnu.org> <878tfn478b.fsf@hochschule-trier.de> <83fu9vuq54.fsf@gnu.org> <874lqa3pmc.fsf@hochschule-trier.de> <83d14xucmm.fsf@gnu.org> Date: Sat, 04 Nov 2017 20:31:40 +0100 In-Reply-To: <83d14xucmm.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 04 Nov 2017 20:23:13 +0200") Message-ID: <87zi813ko3.fsf@hochschule-trier.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 29007 Cc: 29007@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --=-=-= Content-Type: text/plain Eli Zaretskii writes: > Thanks. I think your patch is good for the master branch, but I think > it should include a NEWS entry about the change. Take a look and see if it's OK. --=-=-= Content-Type: text/x-diff Content-Disposition: inline diff --git a/etc/NEWS b/etc/NEWS index 0dd6e36c70..c47ca42d27 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -103,6 +103,12 @@ less verbose by removing non-essential information. dimensions, instead of always using 16 pixels. As a result, Tetris, Snake and Pong are more playable on HiDPI displays. +** Filecache + +--- +*** Completing filenames in the minibuffer via 'C-TAB' now uses the +styles as configured by the variable 'completion-styles'. + * New Modes and Packages in Emacs 27.1 diff --git a/lisp/filecache.el b/lisp/filecache.el index 38a434b11b..aac4f488cd 100644 --- a/lisp/filecache.el +++ b/lisp/filecache.el @@ -566,68 +566,67 @@ file-cache-minibuffer-complete the name is considered already unique; only the second substitution \(directories) is done." (interactive "P") - (let* - ( - (completion-ignore-case file-cache-completion-ignore-case) - (case-fold-search file-cache-case-fold-search) - (string (file-name-nondirectory (minibuffer-contents))) - (completion-string (try-completion string file-cache-alist)) - (completion-list) - (len) - (file-cache-string)) + (let* ((completion-ignore-case file-cache-completion-ignore-case) + (case-fold-search file-cache-case-fold-search) + (string (file-name-nondirectory (minibuffer-contents))) + (completion (completion-try-completion + string file-cache-alist nil 0))) (cond ;; If it's the only match, replace the original contents - ((or arg (eq completion-string t)) - (setq file-cache-string (file-cache-file-name string)) - (if (string= file-cache-string (minibuffer-contents)) - (minibuffer-message file-cache-sole-match-message) - (delete-minibuffer-contents) - (insert file-cache-string) - (if file-cache-multiple-directory-message - (minibuffer-message file-cache-multiple-directory-message)))) + ((or arg (eq completion t)) + (let ((file-name (file-cache-file-name string))) + (if (string= file-name (minibuffer-contents)) + (minibuffer-message file-cache-sole-match-message) + (delete-minibuffer-contents) + (insert file-name) + (if file-cache-multiple-directory-message + (minibuffer-message file-cache-multiple-directory-message))))) ;; If it's the longest match, insert it - ((stringp completion-string) - ;; If we've already inserted a unique string, see if the user - ;; wants to use that one - (if (and (string= string completion-string) - (assoc-string string file-cache-alist - file-cache-ignore-case)) - (if (and (eq last-command this-command) - (string= file-cache-last-completion completion-string)) - (progn - (delete-minibuffer-contents) - (insert (file-cache-file-name completion-string)) - (setq file-cache-last-completion nil)) - (minibuffer-message file-cache-non-unique-message) - (setq file-cache-last-completion string)) - (setq file-cache-last-completion string) - (setq completion-list (all-completions string file-cache-alist) - len (length completion-list)) - (if (> len 1) - (progn - (goto-char (point-max)) - (insert - (substring completion-string (length string))) - ;; Add our own setup function to the Completions Buffer - (let ((completion-setup-hook - (append completion-setup-hook - (list 'file-cache-completion-setup-function)))) - (with-output-to-temp-buffer file-cache-completions-buffer - (display-completion-list - (completion-hilit-commonality completion-list - (length string)))))) - (setq file-cache-string (file-cache-file-name completion-string)) - (if (string= file-cache-string (minibuffer-contents)) - (minibuffer-message file-cache-sole-match-message) - (delete-minibuffer-contents) - (insert file-cache-string) - (if file-cache-multiple-directory-message - (minibuffer-message file-cache-multiple-directory-message))) - ))) + ((consp completion) + (let ((newstring (car completion)) + (newpoint (cdr completion))) + ;; If we've already inserted a unique string, see if the user + ;; wants to use that one + (if (and (string= string newstring) + (assoc-string string file-cache-alist + file-cache-ignore-case)) + (if (and (eq last-command this-command) + (string= file-cache-last-completion newstring)) + (progn + (delete-minibuffer-contents) + (insert (file-cache-file-name newstring)) + (setq file-cache-last-completion nil)) + (minibuffer-message file-cache-non-unique-message) + (setq file-cache-last-completion string)) + (setq file-cache-last-completion string) + (let* ((completion-list (completion-all-completions + newstring file-cache-alist nil newpoint)) + (base-size (cdr (last completion-list)))) + (when base-size + (setcdr (last completion-list) nil)) + (if (> (length completion-list) 1) + (progn + (delete-region (- (point-max) (length string)) (point-max)) + (save-excursion (insert newstring)) + (forward-char newpoint) + ;; Add our own setup function to the Completions Buffer + (let ((completion-setup-hook + (append completion-setup-hook + (list 'file-cache-completion-setup-function)))) + (with-output-to-temp-buffer file-cache-completions-buffer + (display-completion-list + (completion-hilit-commonality completion-list newpoint))))) + (let ((file-name (file-cache-file-name newstring))) + (if (string= file-name (minibuffer-contents)) + (minibuffer-message file-cache-sole-match-message) + (delete-minibuffer-contents) + (insert file-name) + (if file-cache-multiple-directory-message + (minibuffer-message file-cache-multiple-directory-message))))))))) ;; No match - ((eq completion-string nil) + ((eq completion nil) (minibuffer-message file-cache-no-match-message))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; --=-=-= Content-Type: text/plain -ap --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 04 15:49:18 2017 Received: (at 29007) by debbugs.gnu.org; 4 Nov 2017 19:49:18 +0000 Received: from localhost ([127.0.0.1]:50955 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eB4RQ-000645-0s for submit@debbugs.gnu.org; Sat, 04 Nov 2017 15:49:16 -0400 Received: from eggs.gnu.org ([208.118.235.92]:46964) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eB4RO-00063q-Lo for 29007@debbugs.gnu.org; Sat, 04 Nov 2017 15:49:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eB4RG-0000Iu-GJ for 29007@debbugs.gnu.org; Sat, 04 Nov 2017 15:49:09 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:49041) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eB4RG-0000Ij-Cn; Sat, 04 Nov 2017 15:49:06 -0400 Received: from [176.228.60.248] (port=4947 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eB4RE-000520-Ee; Sat, 04 Nov 2017 15:49:06 -0400 Date: Sat, 04 Nov 2017 21:48:58 +0200 Message-Id: <83a801u8np.fsf@gnu.org> From: Eli Zaretskii To: Andreas Politz In-reply-to: <87zi813ko3.fsf@hochschule-trier.de> (message from Andreas Politz on Sat, 04 Nov 2017 20:31:40 +0100) Subject: Re: bug#29007: 25.3; [PATCH] Make filecache use extended completion References: <87k1zi75yn.fsf@hochschule-trier.de> <83wp37vg79.fsf@gnu.org> <878tfn478b.fsf@hochschule-trier.de> <83fu9vuq54.fsf@gnu.org> <874lqa3pmc.fsf@hochschule-trier.de> <83d14xucmm.fsf@gnu.org> <87zi813ko3.fsf@hochschule-trier.de> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 29007 Cc: 29007@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Andreas Politz > Cc: 29007@debbugs.gnu.org > Date: Sat, 04 Nov 2017 20:31:40 +0100 > > Eli Zaretskii writes: > > > Thanks. I think your patch is good for the master branch, but I think > > it should include a NEWS entry about the change. > > Take a look and see if it's OK. LGTM, thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 04 16:53:50 2017 Received: (at 29007) by debbugs.gnu.org; 4 Nov 2017 20:53:50 +0000 Received: from localhost ([127.0.0.1]:50978 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eB5Ru-0007WB-3S for submit@debbugs.gnu.org; Sat, 04 Nov 2017 16:53:50 -0400 Received: from gateway-a.fh-trier.de ([143.93.54.181]:38945) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eB5Rs-0007Vx-Hw for 29007@debbugs.gnu.org; Sat, 04 Nov 2017 16:53:49 -0400 X-Virus-Scanned: by Amavisd-new + Sophos + ClamAV [Rechenzentrum Hochschule Trier (RZ/HT)] Received: from localhost (ip5886048c.dynamic.kabel-deutschland.de [88.134.4.140]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: politza) by gateway-a.fh-trier.de (Postfix) with ESMTPSA id D9C6917A7F9A; Sat, 4 Nov 2017 21:53:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha1; c=simple/simple; d=hochschule-trier.de; s=default; t=1509828820; bh=aan3KvSQUSPLrNCGZJfrKYdFOAw=; h=From:To:Cc:Subject:References:Date:In-Reply-To:Message-ID: MIME-Version:Content-Type; b=Fa2/OiHMBca9r+4F+v0pozx8IFDKZ4rSBTw6MgqveTTM3qzzxxJ7eTcsoz4YyocT7 KCEI12h0HDe/4TMO96b39FxcWBTrjOuYMpJ/J8/LLO+u5v8B7jJ/rgdMJdoEwCn/35 4bYc+TqUiTnt2Zu+H3wn8JriFY6yqT1gEbWGV7BE= From: Andreas Politz To: Eli Zaretskii Subject: Re: bug#29007: 25.3; [PATCH] Make filecache use extended completion References: <87k1zi75yn.fsf@hochschule-trier.de> <83wp37vg79.fsf@gnu.org> <878tfn478b.fsf@hochschule-trier.de> <83fu9vuq54.fsf@gnu.org> <874lqa3pmc.fsf@hochschule-trier.de> <83d14xucmm.fsf@gnu.org> <87zi813ko3.fsf@hochschule-trier.de> <83a801u8np.fsf@gnu.org> Date: Sat, 04 Nov 2017 21:53:40 +0100 In-Reply-To: <83a801u8np.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 04 Nov 2017 21:48:58 +0200") Message-ID: <87vaip3gvf.fsf@hochschule-trier.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 29007 Cc: 29007@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) OK, I pushed it. commit d3233b437eb8757e3c5abc1b50f100ea53ca9e15 Author: Andreas Politz Date: Thu Oct 26 08:59:05 2017 +0200 Make filecache use extended completion * lisp/filecache.el (file-cache-minibuffer-complete): Use completion-try-completion and completion-all-completions. * etc/NEWS: Add news entry. -ap From debbugs-submit-bounces@debbugs.gnu.org Tue May 14 12:36:52 2019 Received: (at control) by debbugs.gnu.org; 14 May 2019 16:36:52 +0000 Received: from localhost ([127.0.0.1]:49708 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hQaQ8-0005Jv-Bp for submit@debbugs.gnu.org; Tue, 14 May 2019 12:36:52 -0400 Received: from mail-io1-f44.google.com ([209.85.166.44]:44105) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hQaQ6-0005Jh-Pn for control@debbugs.gnu.org; Tue, 14 May 2019 12:36:51 -0400 Received: by mail-io1-f44.google.com with SMTP id f22so13364308iol.11 for ; Tue, 14 May 2019 09:36:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version; bh=5Ubt8LuhuQShwdQzLS5+fCM5COq72aq4R2a+8D/krV0=; b=eR+cg9HbysvCs+2pXvGiU1a9wgHpZzybNyr+abXyISN6SNR0IRdnlhR1twQRUH2AeA 5uO+tWTR8ps85tvc0r8Z/R3IThNIXA2EqAlLmUjjF6iPa9Q6N9Eo04Y2BPJC6TsazcWT DeLeYyMfRzNFjCJvqGsCH2npG6tMEpVeX3khv16gun1xRm3lXT3+DCAoIJVtHW0ayxEn RE+VerEXMkmR0n3E2Pxv+BEerY8fe89e/vL7ItuhQLhQPmWbRNkcaUXWf2ubigWnt0AO p+jvKPL28hB7DTJ4r0NN5k7TzdnI2sRFP2fBh43Cv1tyZkGbsdfQSmo/8+nVaBt/0tLv HmdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=5Ubt8LuhuQShwdQzLS5+fCM5COq72aq4R2a+8D/krV0=; b=EO8WT3nQhc++7wgekmusW4wTK06UDXk/7jvFK14/p4EqvRECprQ7fsWJBjl2gLmksJ dvlbbM8EQioxc9fE29p0pI5IOJ96r5s9Qi578YK6EUo7vUmoe9vxHYMp/7uSthEtrI5E 6omVfC59C/jWfLf49mZOtSPBE/1g6CIz2bo80x6JNqjA9DSnPfm4rM16E3WoCdpWr//q HnDBFMvqMREQKPnLC2RQe6E52IGsVZkCaZEhSjtvOJao/d08EOaWZ+rPzPqrEUcN9NWR YVd6sYeuYMTAT8/QIGHZ5y4p4XDFZgt/rvwKLJhPu43rrJVDuYGumVyx0dXG00t0JRQH 1YZg== X-Gm-Message-State: APjAAAX0qm0xeA+l4ebcG+vMhAlQrGtTQwEc3W7iUPcL81SgjIhJTgbO ikKg/E/ZyK2ECW0ngSiTVoieTo2n X-Google-Smtp-Source: APXvYqyuGPic1dkww02h4z0sKgz7HPfYLCCi2xy5+dKPvLqABIuA73r7wJmqZrrui7EF0ck7PD166Q== X-Received: by 2002:a6b:9257:: with SMTP id u84mr21111891iod.55.1557851804129; Tue, 14 May 2019 09:36:44 -0700 (PDT) Received: from vhost2 (CPE001143542e1f-CMf81d0f809fa0.cpe.net.cable.rogers.com. [99.230.51.196]) by smtp.gmail.com with ESMTPSA id 8sm1339658itd.24.2019.05.14.09.36.43 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 14 May 2019 09:36:43 -0700 (PDT) From: npostavs@gmail.com To: control@debbugs.gnu.org Subject: control message for bug #29007 Date: Tue, 14 May 2019 12:36:42 -0400 Message-ID: <85sgthvvqd.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tags 29007 fixed close 29007 27.1 quit From unknown Sat Sep 13 10:22:24 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 12 Jun 2019 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator