From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.devel Subject: RE: [External] : Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico Date: Wed, 7 Apr 2021 23:07:47 +0000 Message-ID: References: <9c9af088-580f-9fb1-4d79-237a74ce605c@inventati.org> <874kgkxxs0.fsf@posteo.net> <3ec7e2e58a100426a22e@heytings.org> <877dleb2px.fsf@posteo.net> <87blaq5amw.fsf@posteo.net> <87o8eplxgt.fsf@posteo.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3563"; mail-complaints-to="usenet@ciao.gmane.io" Cc: "emacs-devel@gnu.org" To: Philip Kaludercic , Daniel Mendler Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Apr 08 01:09:29 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lUHIf-0000nf-0R for ged-emacs-devel@m.gmane-mx.org; Thu, 08 Apr 2021 01:09:29 +0200 Original-Received: from localhost ([::1]:47340 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lUHIa-0006gM-EL for ged-emacs-devel@m.gmane-mx.org; Wed, 07 Apr 2021 19:09:28 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36240) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lUHHV-0005li-Vw for emacs-devel@gnu.org; Wed, 07 Apr 2021 19:08:18 -0400 Original-Received: from userp2120.oracle.com ([156.151.31.85]:35752) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lUHHT-0006Kk-Id for emacs-devel@gnu.org; Wed, 07 Apr 2021 19:08:17 -0400 Original-Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 137N51qq196427; Wed, 7 Apr 2021 23:07:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2020-01-29; bh=fUd38B3gG1oT/9XE3jf1/uVh9cFg9Gc9HmofcHI8iVA=; b=jtCCGh+Dd4PdsfVQIKVXXEJHRFGHgzKw6iJ6TbtONUEnNN6C5rdpKMmD0LzjrtVPvKhl 675Y0PTitClMEuAhJ7iiZ8CYmuFJxsNvm5q9Dn+SlB4zZeob/DpsGOodfO/fIlleMxUq OQYlcxPj9B9wPFamxO/Qca9umkKNt1nLyPVsTQb9kcGXgrgfLqJSWXj4CF5+oxr1nNNV nnCkA0EF6DCdhc5cWg/34uwFq4hSDamPOfdAR1hur3/cDYbXrALxorG396xG+SaKRQFd cjoxKYZnIi1BE0wh2N+ko+xerhoK811WOoqeHqWTdcxVrHuKLw2ILYtgYvnknQYI295R Iw== Original-Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by userp2120.oracle.com with ESMTP id 37rvas46p5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 07 Apr 2021 23:07:50 +0000 Original-Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 137N609n106266; Wed, 7 Apr 2021 23:07:50 GMT Original-Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2103.outbound.protection.outlook.com [104.47.58.103]) by userp3030.oracle.com with ESMTP id 37rvbeya0g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 07 Apr 2021 23:07:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YrV24pJpoGJ4RxYy7zKfAJDLPfBTDE165GtXV5np3s5ks8PsgVmIK0J+y4Igvub3pGQHpenmRxHTXdSHsPsA1eI285qSRimvWo/ljGwZCo6vuVSvcwyDnfczzk+CV+Pk0aHvh8m8jB/0d/jhUA+lq7Oi+sVej2H4IbzIf4Ff8WgnzmLOswaZmJNCPJj3SA4Ueh0JbNLk9FertQRUEVFiWKmIvjkke9g6hBSCtjDequLJH6uuFdPA1xM/9miqJmIftIOUTB+Lmmpr/U1d8uyS12HotXBPYm8ZDxcpk36EkSxueYVThPL/ZyvRthnVUwQ4vTD1q84oeyJCeDSwWZ/ymA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fUd38B3gG1oT/9XE3jf1/uVh9cFg9Gc9HmofcHI8iVA=; b=DPHnYM3AbXnPnHuqbRFOGUdwNyw9AaEDut7eeFSGcnCA7qy4fS7uFRF5ECU1mfYOLZ5gj+07IxdwaJaK5dUr4qxEJya+5eRrCieLmfhDGLxFn3yjQFikpAJAQQTn3O6rz2dDcZnOBI+Yzksd53yG3j8B2rhmF4pF3I8rJqhAlBOmVfkWEj3m9TtvH32v0KQHhmZUGlE2iqwkzmuXPG0RfKB1pkWNY5y8BmzlnqhBp4Gz3fEtlrCfQCXzSyZkHfHFrlTmkDTjW757b7KBVbgn8NKVILwWCbfD2XJTqd0npnxVH/beMvTM8toXXa2jFro0SGfieFft6nU6Nw3BAWRoBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fUd38B3gG1oT/9XE3jf1/uVh9cFg9Gc9HmofcHI8iVA=; b=e3aRtbaETdOXcs2dIg3jalUiVVatIE5HB5k6L44dygH1/8w9I2s+hAqNr+CwUsVRPZjInq8JkoeUD2U7ueU8+YbQt1oKOxA5E9fupuq1yW5SpGrCyy0tVPDzdX1+cv4/b/V7yCCYPQgJ/SYczjld0SNRHK6QAI0/6qa4nieDiBg= Original-Received: from SA2PR10MB4474.namprd10.prod.outlook.com (2603:10b6:806:11b::15) by SN6PR10MB2638.namprd10.prod.outlook.com (2603:10b6:805:3f::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.27; Wed, 7 Apr 2021 23:07:48 +0000 Original-Received: from SA2PR10MB4474.namprd10.prod.outlook.com ([fe80::b8d2:db6d:3e4b:d315]) by SA2PR10MB4474.namprd10.prod.outlook.com ([fe80::b8d2:db6d:3e4b:d315%5]) with mapi id 15.20.3999.032; Wed, 7 Apr 2021 23:07:47 +0000 Thread-Topic: [External] : Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico Thread-Index: AQHXK+I5qRViVwLAiUGNAnUSH8RUiKqpdbEg In-Reply-To: <87o8eplxgt.fsf@posteo.net> Accept-Language: en-US Content-Language: en-US authentication-results: posteo.net; dkim=none (message not signed) header.d=none;posteo.net; dmarc=none action=none header.from=oracle.com; x-originating-ip: [73.170.83.28] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ee80ef3d-3453-4854-b9b3-08d8fa19f5db x-ms-traffictypediagnostic: SN6PR10MB2638: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: GubAQIrRXhJFHOueP1+kU9p9GKHWt/g9EMoM6iEuji6d3xwJl+PjBfE9heZbXqjEVnEyQFF9cclQA9i7ccj8Az0w329IPBnr7iLEGb83YBq0TZB/Ey33+tHf31TD7wzg0HXkPq8fsYRNKf47IestiwR0A1RT/OKQPJjCVCWQkeD1PQ6gTnOeHP3qYSoVNYxU67iBmyjvEBURQ9QAAEjmjd36YXN/RA3WV5SAmMy8UPrwjpzNrTTco/K+FajZ/+cYj1DuMK5NkLq6jRsfzCkyXQuWgF2rq7sRpph/xULK10cHgmiI74gglH5HIrz+FvGQqtmfpJ3BcRUWi4HDfAvPJRgivuMOBgd4p6lA3jy8D0fPauOQcVG+MIy/MbXsPA3XJvMf5nWwp3y/xbkBwsh2N4aQ7GZXiQS6HetFYmVFdUI/GEFaytcZMTVVLrc19P35/XXMQ16UKWoS4qI53ELNDpd8JwXUH00y3cA3hHtvIFJighxGWudRmlmyFWXxhxpzRl51rSnGCCZnVGwSoqE3M3gMIsZdXtDaHxFIYquGe61pDBVpdUFYYeElZzHhgc+WadL9Ukx5NG69cE1nve8h0xzT027xm9vtVmAfW4MqdDvdNClQfW2w6jHCK1QRN6uukutg1ErHSjy5E0pwvCPnOg2eyqxoQjNlB1ngrxE4Kt1J4ytkV5RU73vH6TV9jv26 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR10MB4474.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(39860400002)(346002)(366004)(376002)(136003)(396003)(316002)(2906002)(110136005)(7696005)(66476007)(66556008)(64756008)(71200400001)(9686003)(4326008)(66446008)(478600001)(5660300002)(86362001)(8676002)(52536014)(8936002)(6506007)(33656002)(76116006)(26005)(44832011)(83380400001)(186003)(55016002)(38100700001)(66946007)(14263002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?SuKLqsCtOyzfL9udNSzA3jyfCELmsMeh1MCfkX/9FHh5t3V0GE7nPp84h5G3?= =?us-ascii?Q?CRqFPk79liNSo1Elgf/Ca497nedyQ3oKe7teEXUKobHIe7fcoek5sdI6mx4q?= =?us-ascii?Q?6EaqnerEaTXpk9uasx3rlgRanniMwqaUa7fq+l6dPi57jMxgLULZFE7wRY+J?= =?us-ascii?Q?Xs4vmnC7ThoIE0sdwFxIYHMBGVYqnAGM6n/2yTLfhTu3w1Vom0iQ1flMftOM?= =?us-ascii?Q?aA4fLI0ck9BHFO9RDvFpmG+tCbZRcCqZwzJFyw1Tv0eEpMcxaf2kWThJW0x3?= =?us-ascii?Q?QKyBMuQk72Z1u7QA0rSBTU1EruCVkDHBsqWIwYSI/DfhSmV8zvK7KYoqllNt?= =?us-ascii?Q?96yg/ZssPfmmiDeZsPsQEjV33bMSQjLYHXcM1Z5sIC+AJyFkjjISrxap458m?= =?us-ascii?Q?rL/8G40BX49XEuwVQYTKgunSw67kNa+FpO3wGPAp8aYx8kl3yZw5wF99sWnh?= =?us-ascii?Q?6iV3xyMn1UVp93icBipKRPojkbU0hTf9BINeVuAGkG807PcgldDJwTgsFs9+?= =?us-ascii?Q?EHocYdRiJI/3XX/9qH9Np7tXvIXRQ+1i4JaRTGXc0IQLotXfJT5RfoN08Uc8?= =?us-ascii?Q?Nw1T0yF35EkWLVXeIPT8ailp/0WHyIv6QmxM9u/XXXaofNoGujAg+0ipiy3D?= =?us-ascii?Q?JDuk x-ms-exchange-transport-forked: True X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4474.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ee80ef3d-3453-4854-b9b3-08d8fa19f5db X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2021 23:07:47.7366 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: YeiQFbk8ybCkHvLo1/Wjib1bR5+lHJB1kv2i5Twv/Jj+0qOL2DDB6zq43s9TsJYvseO2wsg5Xbz2Oy6P9zeGjQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2638 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9947 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0 suspectscore=0 phishscore=0 malwarescore=0 mlxscore=0 spamscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104070164 X-Proofpoint-GUID: m695wkuFMgjehLbnufwsMek6sj0nti1b X-Proofpoint-ORIG-GUID: m695wkuFMgjehLbnufwsMek6sj0nti1b X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9947 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 lowpriorityscore=0 adultscore=0 priorityscore=1501 malwarescore=0 mlxlogscore=999 clxscore=1015 bulkscore=0 mlxscore=0 phishscore=0 spamscore=0 suspectscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104070164 Received-SPF: pass client-ip=156.151.31.85; envelope-from=drew.adams@oracle.com; helo=userp2120.oracle.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:267586 Archived-At: > > Regarding "interpreting completion as selection" and "text > > expansion", I am unsure if there is a big difference. You always start > > with a set of possible completions and only for very few styles a > > prefix completion is possible. This has been mentioned before in this > > thread, I think. >=20 > I don't start with any set, I start with an (usually) > empty prompt and type a few letter, tab to check and > then press enter. You start with empty input. But when starting the operation (reading input with possible candidates for completion) you are also starting with a set of candidates that you can conveniently choose - a domain of choices. The set of such convenient choices is _not_ limited to those provided to `completing-read' by way of its COLLECTION argument. (And that argument can be a function, which can provide an infinite number of candidates.) It includes the "candidates" of the DEF list, which you can also choose from easily, albeit in a different way (e.g. M-p, M-r) from using TAB. Similar considerations apply to `read-file-name', and even other read functions, including `read-from-minibuffer'. Some such functions don't even provide for "completion", and yet they let you easily choose among a specified set of "candidates". And those are just the candidates you can choose _conveniently_. Many read functions let you input nearly any text. Even lax completion (nil REQUIRE) lets you do that. You want to separate a notion of "selection" from a notion of "completion" (the latter in the Emacs sense). That unnecessarily focuses not on the user actions (input, choosing, acting on, canceling...) but on _one kind_ of resulting action: replacing some input string with an output string. That's quite limiting. (And note that even in that case the output need not be longer than - a real "completion" of - the input.) That's a narrow focus, and isn't very helpful, IMO. Something like `completing-read' or `read-file-name' (or even `read-from-minibuffer') has multiple moving parts - different subsystems, providing different functionalities. What's important is their possible use together - the synergy they provide. Suppose we focus on that whole - the combination (and probably including other functionalities not yet included). Do we need a new name, instead of "completion"? I think not, but I don't really care (except for a maintenance burden renaming entails). Sure, "completion" doesn't really mean all of those things. But it never meant all of what Emacs has always provided for its "completion". So what? I like finding "le mot juste" as much as the next person. But at some point it just doesn't matter. No one is getting confused by Emacs using the term "completion" to mean such a constellation of things, I expect. And sometimes there _isn't_ a mot juste. And just inventing a new word van be more of a cop-out than a solution to the fact that "completion" in its usual sense doesn't cover all of what Emacs means by that term. > But even so, there are situations where selection > would be preferable. Usually when I don't know > what my options are. Emacs "completion" is multidimensional. That's the point. Don't call it "completion" if the term bothers you. The point is that you can make use of it in any direction/dimension or any combination of them. > > I am actually quite satisfied with the status quo given the many > > package options, where everyone seems to find a good fit. But maybe > > the name `completing-read` does not reflect anymore what it is since > > it is often used for something else than simple prefix expansion. The > > prefix/basic completion is baked pretty deeply in the completion APIs, > > e.g., `all-completions` and this got relaxed afterwards. >=20 > Well FWIW I'm not. You already said that for you it's "not about filtering a data set but expanding a string." You reject a point of view that "it's about" a bunch of things, working together, to achieve lots of different kinds of goals. If you limit yourself to a single, expand-a-string purpose, then it's not surprising that you, well, ultimately find yourself limited. That doesn't mean that what Emacs (already) offers is limited. (Sounds like the classic joke about someone hitting his head against the wall and a doctor prescribing, as remedy, "Don't do that.")