From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Why fido, icycles, ido, icomplete Date: Thu, 07 Nov 2019 09:09:23 -0500 Message-ID: References: <20191106212018.cnddqzlo5rpdhi6s.ref@Ergus> <20191106212018.cnddqzlo5rpdhi6s@Ergus> <877e4c1x3r.fsf@gmail.com> <20191106232153.bb756hrf4ctwegkp@Ergus> <87ftj0eeum.fsf@telefonica.net> <20191107004718.pxb3m7hzecbxz7uu@Ergus> <8736f0e8an.fsf@telefonica.net> Mime-Version: 1.0 Content-Type: text/x-markdown; charset=UTF-8; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="161103"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: =?windows-1252?Q?=D3scar?= Fuentes Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Nov 07 15:09:55 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.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iSiTy-000fig-GD for ged-emacs-devel@m.gmane.org; Thu, 07 Nov 2019 15:09:54 +0100 Original-Received: from localhost ([::1]:43044 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iSiTx-0001fy-6H for ged-emacs-devel@m.gmane.org; Thu, 07 Nov 2019 09:09:53 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44503) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iSiTb-0001Gk-0h for emacs-devel@gnu.org; Thu, 07 Nov 2019 09:09:32 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iSiTZ-0000xP-HC for emacs-devel@gnu.org; Thu, 07 Nov 2019 09:09:30 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:51294) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iSiTZ-0000w2-9e for emacs-devel@gnu.org; Thu, 07 Nov 2019 09:09:29 -0500 Original-Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 7D0CA81248; Thu, 7 Nov 2019 09:09:28 -0500 (EST) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id E810080D58; Thu, 7 Nov 2019 09:09:26 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1573135766; bh=sTA9R5B5CUsVcbu9D14WbUwX5HhgOxdG6inVfxu9v98=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=TlJRoZU4i+7ucKpWVAAUy1389vao0sMO6vA0d31mt85See30VdKTCc1G6s9b46VfY U57LzxoEaeCo1AwNfSBLSN+X5g69aIsHL+QyD8lp89/Tz+EvKKD1nmLel6HjDMOd+v CzmP2J3/UXOPkqBWDkYKWOLJ82V6OL6eCZCtjfl8U454vwaQxIHC8biLnm2aj+ZTp1 +XJ78n2tqWv0kIKatDmwjRQChkHar4IEb6ta7uONEzMzws0TTGgi68MJRYv9ZSlPIO lHTDutxBI5Z9Arp2X/7GyjO+mUsKeHoSMVfNiKRXKIzXMHL1LC1grexoQgycBC7W13 L/i43msM0izrg== Original-Received: from pastel (unknown [216.154.47.134]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 803E1120202; Thu, 7 Nov 2019 09:09:26 -0500 (EST) In-Reply-To: <8736f0e8an.fsf@telefonica.net> (=?windows-1252?Q?=22=D3scar?= Fuentes"'s message of "Thu, 07 Nov 2019 03:20:48 +0100") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 132.204.25.50 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:241919 Archived-At: Hola =D3scar, > Which new features? Which issues? Did you notice the part were I > mentioned that I tried Ivy and it was inferior to my Ido setup? IDO is a great package which lots of users like, so much so that we have several extra packages trying to use it in more circumstances than just selecting buffers and files. It still works as well as ever, AFAIK. But like all packages, there's pressure to make it work even better. One of those improvements is to make it work for all completions, as is done in ido-everywhere and ido-completing-read. But as it turns out, the current ido code only works with *most* completion tables, not all. There aren't terribly many completion tables for which it doesn't work, but it would be nice to get those few remaining percents working. There are 2 ways to do that: 1- improve ido.el 2- write a replacement Both approaches are valid. Experience shows that approach number 2 has been more popular. Personally, I don't use IDO so I'm not particularly interested in either approach's goal, but I do like some of IDO's features, so I'm interested in solutions that result in a closer integration of the "normal" completion code and IDO so I get to use some the features I like without being forced to buy into the ones I don't. That's why I wrote the `substring` completion style (which, together with icomplete-mode (plus a few tweaks) made iswitchb obsolete, but more importantly, it brought that feature to all users in the default config). IOW, I don't see fido-mode as "obsoleting ido-mode" but as "adding IDO features to the standard completion system", IOW spreading IDO's gospel further. Here as some examples of the corner cases supported by the standard completion system and that IDO currently doesn't cover, AFAICT: - C-x C-f by default can complete env vars, e.g. when you type C-x C-f $HOM= TAB - C-x C-f ${HOM TAB will not only complete the "E" but will also close the "}", at least if there's no other env var starting with "HOME". - IDO doesn't support some completion styles such as `partial-completion` E.g. C-x C-f ~/e/s/r-e.c TAB to find the ~/emacs/src/regex-emacs.c file. - By default IDO only covers minibuffer completion of files and buffers. ido-completing-read makes it cover all minibuffer completions, but there's still no support for in-buffer completion. - the *Completions* buffer (and icomplete-mode's in-buffer list of completions [tho I now notice that some of the highlighting is lost in some cases, looks like a bug]) highlights the parts of the candidates that matched the pattern, as well as the place that correspond to where "point" is. Stefan