From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Kevin Rodgers Newsgroups: gmane.emacs.help Subject: Re: dynamic completion-ignored-extensions Date: Sun, 20 Jul 2008 08:53:27 -0600 Message-ID: References: <873am8m2tu.fsf@blah.blah> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1216565656 26560 80.91.229.12 (20 Jul 2008 14:54:16 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 20 Jul 2008 14:54:16 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Jul 20 16:55:05 2008 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1KKaJM-0003PB-DD for geh-help-gnu-emacs@m.gmane.org; Sun, 20 Jul 2008 16:54:56 +0200 Original-Received: from localhost ([127.0.0.1]:35358 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KKaIT-0000wp-Jc for geh-help-gnu-emacs@m.gmane.org; Sun, 20 Jul 2008 10:54:01 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KKaIA-0000wR-Fd for help-gnu-emacs@gnu.org; Sun, 20 Jul 2008 10:53:42 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KKaI8-0000us-Ah for help-gnu-emacs@gnu.org; Sun, 20 Jul 2008 10:53:41 -0400 Original-Received: from [199.232.76.173] (port=32795 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KKaI8-0000uh-2Q for help-gnu-emacs@gnu.org; Sun, 20 Jul 2008 10:53:40 -0400 Original-Received: from main.gmane.org ([80.91.229.2]:52471 helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KKaI7-0003YC-AU for help-gnu-emacs@gnu.org; Sun, 20 Jul 2008 10:53:39 -0400 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1KKaI3-0007aZ-C1 for help-gnu-emacs@gnu.org; Sun, 20 Jul 2008 14:53:35 +0000 Original-Received: from c-67-190-29-163.hsd1.co.comcast.net ([67.190.29.163]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 20 Jul 2008 14:53:35 +0000 Original-Received: from kevin.d.rodgers by c-67-190-29-163.hsd1.co.comcast.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 20 Jul 2008 14:53:35 +0000 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 27 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: c-67-190-29-163.hsd1.co.comcast.net User-Agent: Thunderbird 2.0.0.14 (Macintosh/20080421) In-Reply-To: <873am8m2tu.fsf@blah.blah> X-detected-kernel: by monty-python.gnu.org: Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:55750 Archived-At: Kevin Ryde wrote: > Is there a way to have a kind of dynamic completion-ignored-extensions > so that for instance a .c file is ignored if there's a .xs of the same > name? Or even a kind of programmatic ignore so Makefile is not offered > if it seems to be in a build directory of some flavour (and therefore a > generated file). > > I tried sticking a defadvice on file-name-completion, but in emacs22 it > doesn't seem to be reached. I guess read-file-name is C code and > bypasses advice, or something. Is there another filename reader that > could be could be easily pressed into service and customized? Right, and read-file-name is implemented in C as well, which is why there is the read-file-name-function variable (C-h v). Maybe something like this will do what you want: (defun my-read-file-name (&rest args) "Tweak `completion-ignored-extensions' before calling `read-file-name'." (let ((read-file-name-function nil) (completion-ignored-extensions (your-code-here))) (apply 'read-file-name args))) (setq read-file-name-function 'my-read-file-name) -- Kevin Rodgers Denver, Colorado, USA