From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.devel Subject: RE: A widget-based version of find-cmd Date: Mon, 3 Jun 2019 13:41:33 -0700 (PDT) Message-ID: References: <87v9xrfjyj.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="97811"; mail-complaints-to="usenet@blaine.gmane.org" To: Stefan Monnier , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jun 03 22:42:18 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hXtmb-000PLB-Ke for ged-emacs-devel@m.gmane.org; Mon, 03 Jun 2019 22:42:17 +0200 Original-Received: from localhost ([127.0.0.1]:40684 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hXtma-0003yV-H6 for ged-emacs-devel@m.gmane.org; Mon, 03 Jun 2019 16:42:16 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:60531) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hXtm1-0003yB-HT for emacs-devel@gnu.org; Mon, 03 Jun 2019 16:41:42 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hXtm0-0004GV-Hq for emacs-devel@gnu.org; Mon, 03 Jun 2019 16:41:41 -0400 Original-Received: from aserp2130.oracle.com ([141.146.126.79]:59214) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hXtm0-00049a-7h for emacs-devel@gnu.org; Mon, 03 Jun 2019 16:41:40 -0400 Original-Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x53Kd1iq089440; Mon, 3 Jun 2019 20:41:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=mime-version : message-id : date : from : sender : to : subject : references : in-reply-to : content-type : content-transfer-encoding; s=corp-2018-07-02; bh=OjsLLhqr6mqwfnFkGenjYCH5UVax/OzWcF2HZlsguYY=; b=5dzhGrDTsK+e6vTAoU7vx70m9as6ygcmmGpqBZIcEPnhRjSOmJ3ugXhmSUh7IgVpykum aNe+JwJER9xpYATmgeI4+pL5zwzSI5tB4vVFdOJ35YDFTBmX8j3iaT7AvLNU0qFeYLjI 5hFdwf7+CHPq37c/y0MGXLekN7fV+t0jmH9hphQ+RoQeaNdw/MKx6XN/ALRfrY1vy4kL UElHUUiSxBsksP93kNo/fSeEQD//6mbARbmwsZAeKefL7+2BZTxgs4W7CDSrSctRdKjc KFi4lIla1H/9C1YuV16RMOucQAHgAD40kkIKquUxHEIZXOp7C7REhYAfYg4hIOqFjPEI Ng== Original-Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by aserp2130.oracle.com with ESMTP id 2suevd9jbw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 03 Jun 2019 20:41:37 +0000 Original-Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x53KeEWO162115; Mon, 3 Jun 2019 20:41:36 GMT Original-Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userp3020.oracle.com with ESMTP id 2svnn8fkgm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 03 Jun 2019 20:41:36 +0000 Original-Received: from abhmp0005.oracle.com (abhmp0005.oracle.com [141.146.116.11]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x53KfYPV019516; Mon, 3 Jun 2019 20:41:35 GMT In-Reply-To: X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 16.0.4849.0 (x86)] X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9277 signatures=668687 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=938 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1906030138 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9277 signatures=668687 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=980 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1906030139 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 141.146.126.79 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:237229 Archived-At: > Yes, of course. Another direction (complementary rather than opposed to > what you're suggesting) would be to extend Elisp's completion so it > understands `find-cmd` and hence gives you the valid completion after > you type `(find-cmd '(pru TAB` Yes, both would be useful additions. Completion is handy and quick. On the other hand, it would be good to be able to fill out a "dialog box" (widgets) once, and have the same filled-out settings available for subsequent reuse (until you change some of those settings). You can perhaps get somewhat the same advantage from completion by using `M-p' to retrieve the last input for each completion type (assuming they are on separate minibuffer histories), but that's not quite as handy. One of the advantages of a dialog box in such contexts is setting it and reusing it for multiple search actions (interspersed with other, non-search actions). In fact, that's about the only advantage I find for such a dialog box. In sum, when there are possibly a bunch of settings you might fill out, Emacs should save them and offer them to you again. You should not need to fill out the same choices multiple times consecutively. > I'm sending you all my psychic power. I hope it helps. Ditto, FWIW. > > What I basically need is to define a > > widget type that let's you choose from a list of options. Among them > > are combiners like "or" that, when chosen, should provide a widget of > > the same type. My problem is that I run into an infinite recursion. I > > thought I can avoid that by constructing the widget deferred via > > :convert-widget but that doesn't help. Maybe :convert-widget is not fo= r > > that purpose (actually, then I don't get the purpose of :convert-widget > > from the widget manual). >=20 > I think you're looking for the `lazy` widget. Or maybe just split it up, having part of it use `repeat'? Thanks for working on this, Michael.