From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.devel Subject: RE: handling many matches [was: [ELPA] New package: transient] Date: Fri, 1 May 2020 15:47:46 -0700 (PDT) Message-ID: References: <119c0543-387d-4fad-b7fe-b4e07a7be4f8@default> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="30115"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Jonas Bernoulli , Emacs developers , Philippe Vaucher , Adam Porter , Kyle Meyer , Eli Zaretskii To: Dmitry Gutov , Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat May 02 00:48:46 2020 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 1jUeSc-0007k2-0V for ged-emacs-devel@m.gmane-mx.org; Sat, 02 May 2020 00:48:46 +0200 Original-Received: from localhost ([::1]:53342 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jUeSb-0005n7-21 for ged-emacs-devel@m.gmane-mx.org; Fri, 01 May 2020 18:48:45 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43812) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jUeS0-0005OF-9Y for emacs-devel@gnu.org; Fri, 01 May 2020 18:48:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jUeRz-0004WN-Hm for emacs-devel@gnu.org; Fri, 01 May 2020 18:48:07 -0400 Original-Received: from userp2130.oracle.com ([156.151.31.86]:38252) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jUeRx-0004TT-SE; Fri, 01 May 2020 18:48:06 -0400 Original-Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 041Mlv4j123172; Fri, 1 May 2020 22:47:57 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=mime-version : message-id : date : from : sender : to : cc : subject : references : in-reply-to : content-type : content-transfer-encoding; s=corp-2020-01-29; bh=d1c+QXVM2SFAm9jlzk9RBP5JiczCt7IxKfwK6/bj6ac=; b=MOZ4MBkqYbd6tgb/YmsRiSsH7CqFejUoqVsTNp02j5MvPgvaHWICTGXvU2oQ3P3lYRSY fYh9dLinPybW3mmZFK8xqO9yq3AnQCCeX6L2Ge5x1CXpe78gh3+79+UJdy800FkQhr1a Lw9WTZ/Bj88PemMrpdMxq+hlypCGeWyeklZr/6mUqdigqHJURcOs0+PiF6Jy4f1qUlWs YFanAFl9OHKHo8KEjVnwtsJksoPLKOISrmjrgX5Q7uSceX2gB8UdRsdwYz6C03iSAU0/ PTxAK/6IRLsMCqzPq+CWNER/e7AFGRdcSPJyydT+1PFJATcxC2k2rVKSZIZAGD4Enyb7 xA== Original-Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 30r7f84af7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 May 2020 22:47:57 +0000 Original-Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 041MgU7g148301; Fri, 1 May 2020 22:47:56 GMT Original-Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserp3030.oracle.com with ESMTP id 30r7f56n26-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 01 May 2020 22:47:56 +0000 Original-Received: from abhmp0012.oracle.com (abhmp0012.oracle.com [141.146.116.18]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 041MllUj001169; Fri, 1 May 2020 22:47:47 GMT In-Reply-To: X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 16.0.4993.0 (x86)] X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9608 signatures=668687 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 phishscore=0 adultscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2005010157 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9608 signatures=668687 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 impostorscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 clxscore=1015 phishscore=0 mlxscore=0 lowpriorityscore=0 suspectscore=1 adultscore=0 priorityscore=1501 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2005010157 Received-SPF: pass client-ip=156.151.31.86; envelope-from=drew.adams@oracle.com; helo=userp2130.oracle.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/01 17:07:17 X-ACL-Warn: Detected OS = Linux 3.x [generic] [fuzzy] X-Received-From: 156.151.31.86 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:248349 Archived-At: > > 1. Progressive matching, i.e., narrowing the set > > of candidates by matching another pattern. > > 2. Pruning, by excluding matches. >=20 > This is all high-maintenance. It requires the user to master the > matching interface first, with extra keys and new behaviors. No, it doesn't require anything special from users. It's pretty natural. One key to separate match patterns. Another to remove the last set of matches. Any keys will do. And no requirement to use either. Some completion frameworks offer #1, using SPC or comma as the key. Icicles uses S-SPC, by default, so SPC can self-insert as part of a candidate. (I don't know of other frameworks that offer #2, but perhaps there are some.) > Whereas "other editors" have already solved this better (perhaps not > ideally, but better) by doing fuzzy matching with smart enough sorting. > We should start by matching that functionality, and only then add extra > capabilities, maybe. I disagree (as I said) that any fuzzy matching, with or without scoring, "solves this", at all. ___ And for the record, Icicles also offers fuzzy matching - 7 kinds, including some that use scoring. https://www.emacswiki.org/emacs/Icicles_-_Completion_Methods_and_Styles#Fuz= zyCompletion This is not about touting Icicles. But for some perspective, the relative worth of fuzzy matching compared to progressive matching (#1) and pruning (#2) is maybe 1 to 100. Icicles provides a space to compare them. Of course, it depends on the domain of candidates; for some domains fuzzy matching can be quite helpful. But even then it's better to be able to use more than one matching (fuzzy or not) and be able to prune matches (fuzzy or not). Being able to do such things doesn't mean you're required to. In sum, fuzzy matching is a red herring, here - completely orthogonal to the point made.