From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Miles Bader Newsgroups: gmane.emacs.devel Subject: Re: minibuffer-eldef Date: Wed, 02 Jun 2004 18:50:12 +0900 Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: References: <20040528.182035.197345599.wl@gnu.org> <87k6yvorzf.fsf@mail.jurta.org> <20040529213132.GA31322@fencepost> <873c5hd35q.fsf@mail.jurta.org> <8765aadbgb.fsf@mail.jurta.org> Reply-To: Miles Bader NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: sea.gmane.org 1086169937 29990 80.91.224.253 (2 Jun 2004 09:52:17 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 2 Jun 2004 09:52:17 +0000 (UTC) Cc: Juri Linkov , wl@gnu.org, emacs-devel@gnu.org, Stefan Monnier , rms@gnu.org Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Wed Jun 02 11:52:08 2004 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1BVSPn-000408-00 for ; Wed, 02 Jun 2004 11:52:07 +0200 Original-Received: from lists.gnu.org ([199.232.76.165]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1BVSPn-0004Ok-00 for ; Wed, 02 Jun 2004 11:52:07 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1BVSQ4-0007WT-P7 for emacs-devel@quimby.gnus.org; Wed, 02 Jun 2004 05:52:24 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1BVSQ2-0007WO-RF for emacs-devel@gnu.org; Wed, 02 Jun 2004 05:52:22 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1BVSQ0-0007Vl-F0 for emacs-devel@gnu.org; Wed, 02 Jun 2004 05:52:22 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1BVSQ0-0007Vb-DB for emacs-devel@gnu.org; Wed, 02 Jun 2004 05:52:20 -0400 Original-Received: from [202.32.8.214] (helo=TYO201.gate.nec.co.jp) by monty-python.gnu.org with esmtp (Exim 4.34) id 1BVSOA-00026e-Nc; Wed, 02 Jun 2004 05:50:27 -0400 Original-Received: from mailgate3.nec.co.jp (mailgate53.nec.co.jp [10.7.69.162] (may be forged)) by TYO201.gate.nec.co.jp (8.11.7/3.7W01080315) with ESMTP id i529oIp05482; Wed, 2 Jun 2004 18:50:18 +0900 (JST) Original-Received: (from root@localhost) by mailgate3.nec.co.jp (8.11.7/3.7W-MAILGATE-NEC) id i529oHu25943; Wed, 2 Jun 2004 18:50:17 +0900 (JST) Original-Received: from edtmg04.lsi.nec.co.jp ([10.26.17.201]) by mailsv.nec.co.jp (8.11.7/3.7W-MAILSV-NEC) with ESMTP id i529oGQ17592; Wed, 2 Jun 2004 18:50:16 +0900 (JST) Original-Received: from mcsss2.ucom.lsi.nec.co.jp (localhost [127.0.0.1]) by edtmg04.lsi.nec.co.jp (8.12.10/8.12.10) with ESMTP id i529oDbS005636; Wed, 2 Jun 2004 18:50:13 +0900 (JST) Original-Received: from mctpc71 (mctpc71.ucom.lsi.nec.co.jp [10.30.118.121]) by mcsss2.ucom.lsi.nec.co.jp (8.12.10/8.12.8/EDcg v2.01-mc/1046780839) with ESMTP id i529oCIm029400; Wed, 2 Jun 2004 18:50:12 +0900 (JST) Original-Received: by mctpc71 (Postfix, from userid 31295) id 3D58B502; Wed, 2 Jun 2004 18:50:12 +0900 (JST) Original-To: storm@cua.dk (Kim F. Storm) System-Type: i686-pc-linux-gnu Blat: Foop In-Reply-To: (Kim F. Storm's message of "02 Jun 2004 10:04:48 +0200") Original-Lines: 42 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:24400 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:24400 --=-=-= storm@cua.dk (Kim F. Storm) writes: > Couldn't minibuffer-electric-default-mode automatically > change (default X) to [X] ? Hmmm, clever! Try the attached patch, and then eval the following function and do: (setq minibuf-eldef-frob-function 'minibuf-eldef-squirk-default) (defun minibuf-eldef-squirk-default (overlay state) (cond (state (unless (overlay-get overlay 'replacement) (let ((string (buffer-substring (overlay-start overlay) (overlay-end overlay)))) (setq string (replace-regexp-in-string " *(default `?\\(.*\\)'?)" " [\\1]" string)) (overlay-put overlay 'replacement string))) (overlay-put overlay 'display (overlay-get overlay 'replacement))) (t (overlay-put overlay 'invisible t) (overlay-put overlay 'intangible t) (overlay-put overlay 'display nil)))) The only (slight) problem is that it uses a `display' property, which can be annoying if you want to manually copy the value of the default or something. It could probably do something more clever like only overlaying the bracketting portions of the default or something. -Miles Patch: --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=+minibuf-default-frob.patch Content-Description: +minibuf-default-frob.patch --- orig/lisp/minibuf-eldef.el +++ mod/lisp/minibuf-eldef.el @@ -1,6 +1,6 @@ ;;; minibuf-eldef.el --- Only show defaults in prompts when applicable ;; -;; Copyright (C) 2000, 2001 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc. ;; ;; Author: Miles Bader ;; Keywords: convenience @@ -46,6 +46,8 @@ matching the default part of the prompt, and who's cdr indicates the regexp subexpression that matched.") +(defvar minibuf-eldef-frob-function nil) + ;;; Internal variables @@ -103,7 +105,11 @@ (minibuffer-contents-no-properties)) (setq minibuf-eldef-initial-buffer-length (point-max)) (add-to-list 'minibuf-eldef-frobbed-minibufs (current-buffer)) - (add-hook 'post-command-hook #'minibuf-eldef-update-minibuffer nil t)))) + (add-hook 'post-command-hook #'minibuf-eldef-update-minibuffer nil t) + (when minibuf-eldef-frob-function + (funcall minibuf-eldef-frob-function + minibuf-eldef-overlay + minibuf-eldef-showing-default-in-prompt))))) ;; post-command-hook to swap prompts when necessary (defun minibuf-eldef-update-minibuffer () @@ -118,7 +124,11 @@ ;; swap state (setq minibuf-eldef-showing-default-in-prompt (not minibuf-eldef-showing-default-in-prompt)) - (cond (minibuf-eldef-showing-default-in-prompt + (cond (minibuf-eldef-frob-function + (funcall minibuf-eldef-frob-function + minibuf-eldef-overlay + minibuf-eldef-showing-default-in-prompt)) + (minibuf-eldef-showing-default-in-prompt (overlay-put minibuf-eldef-overlay 'invisible nil) (overlay-put minibuf-eldef-overlay 'intangible nil)) (t --=-=-= -- .Numeric stability is probably not all that important when you're guessing. --=-=-= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel --=-=-=--