From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= Newsgroups: gmane.emacs.devel Subject: Re: Why fido, icycles, ido, icomplete Date: Wed, 06 Nov 2019 22:03:20 +0000 Message-ID: <877e4c1x3r.fsf@gmail.com> References: <20191106212018.cnddqzlo5rpdhi6s.ref@Ergus> <20191106212018.cnddqzlo5rpdhi6s@Ergus> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="217031"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: Drew Adams , emacs-devel@gnu.org To: Ergus Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Nov 06 23:05:46 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 1iSTQu-000uID-LK for ged-emacs-devel@m.gmane.org; Wed, 06 Nov 2019 23:05:44 +0100 Original-Received: from localhost ([::1]:35524 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iSTQt-0000nK-A9 for ged-emacs-devel@m.gmane.org; Wed, 06 Nov 2019 17:05:43 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59051) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iSTOh-0007O6-VI for emacs-devel@gnu.org; Wed, 06 Nov 2019 17:03:29 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iSTOg-0002KH-Nk for emacs-devel@gnu.org; Wed, 06 Nov 2019 17:03:27 -0500 Original-Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:33694) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iSTOg-0002Jb-HN for emacs-devel@gnu.org; Wed, 06 Nov 2019 17:03:26 -0500 Original-Received: by mail-wr1-x42c.google.com with SMTP id w30so482346wra.0 for ; Wed, 06 Nov 2019 14:03:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=h/FzOYEDm+4gs/9dH0RBmHcHnrODTREvVXCsT34oREY=; b=cKqe9bIOZbg4f+Svi7j9gG41tyb1ohLlZTlcmHQsitr0Ptug5/dSWYUV4qHHXHVCYT HmyAPsIgVU2mYeHjSLDqnuYQDGP100rL7LcVKkzKmSmI5tmGtSwLsBOUPJlqsjvWNUZ/ +gyHerR+rNRD7Qxm5448MUnO2AQEpb3BbxZaS5Z0k8o6HZQ1e0Y62cRfQYM0cdSAKqyo hk4X70ggQrKK8DnhX82Lr/mJisa9mxwXmyADafmB73lMRwL4cjs+ppX3KNhvxtfNvRkx Ic+5zeTi7T9qJArWi6eNT+YISuvkSmepGyQJGhSWppCEfvI3LU/WupZluccWDLCbRePe j1Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=h/FzOYEDm+4gs/9dH0RBmHcHnrODTREvVXCsT34oREY=; b=t7qsTUyU029h23ce+g7701I7UiDH3UfyJ33asE9rYc11PUgRlQhSf8cglaa1HLif1p QKTdZVJj7osRxhnUA8xfwTnaZ8hlNPlPGwnmtSyHYwg350wC+qRtN/GjQkd0L4YVJwkS nPpffFBchuQ4m2BKisibeJhKPpNUnCnZPmqeiwaNoUPHH0fBtsIqyGJZ8clfdZqQfEvn 5V53XXCjxIE1nGKzzXIXHJ86obB6rJz5ronH1qLhpElw0t76v2k7tRDPJpCD0184zQBR 5LBooODASOXD3gpswlD1Q6Ucxi29WuVyFMtoxQkgGHPqiYOpDrlx3WeBLxRAw3ZRPltN Kr+g== X-Gm-Message-State: APjAAAWcI480LEZy9c7QeUQba6HAZPDcVlpGtuUDJgZHyJRM4aNNh867 zXvTQrSk/TV8gT971x5EhgtmZp8m X-Google-Smtp-Source: APXvYqy+yD8Pb71gYOvcbEnLBPPIU9ITMcootqYd1H0pL38Qhi5gqgtCVjuWIoQF0/wJ4VwfTLNKPw== X-Received: by 2002:a5d:55ce:: with SMTP id i14mr4620679wrw.169.1573077805084; Wed, 06 Nov 2019 14:03:25 -0800 (PST) Original-Received: from lolita.yourcompany.com ([2001:818:d820:9500:1ebb:afd8:ab26:f0f6]) by smtp.gmail.com with ESMTPSA id b3sm3957143wma.13.2019.11.06.14.03.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Nov 2019 14:03:23 -0800 (PST) In-Reply-To: <20191106212018.cnddqzlo5rpdhi6s@Ergus> (Ergus's message of "Wed, 6 Nov 2019 22:20:18 +0100") X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42c 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:241879 Archived-At: Ergus writes: > 1) Do we really need another confusing mode (fido-mode)? instead of > improve one of the already existing alternatives with just an option to > use flex? I'm sorry you find the name confusing. I find it appealing (it's "fake ido"), but we can change it (Stefan proposed icomplete-ido-mode). Now, I wish I could just put 'flex' (and many other things) in ido-mode. Actually the matter is much more complicated. Ido mode is a completely separate completion system that doesn't respect Emacs completion interfaces (completion-in-region-functions, completion-at-point-functions, completion-styles, etc etc etc ). This means it doesn't work nicely for M-x, C-h f, and many many other completion situations. So, believe me, I tried to change it... and gave up immediately (but go ahead, open lisp/ido.el hehehe). Recently, we worked together with the Helm developer to help Helm to abide by a greater number of Emacs completion interfaces. It should have, among other benefits, the interesting result that you can use Helm matching styles in icomplete.el's frontend. Or company's. Or Emacs's flex in Helm. So I don't think it's true there's no cooperation. Maybe you can convince someone to do that for ido.el, idk. I was a heavy Ido addict for many years because it has the best interface, hands down, much better than Ivy, or Helm, IMO of course. I also know many people in my company that swear by it. But the implementation was impossibly hard to hack on. Then I found icomplete.el, with very lean implementation (around 8x less lines) and the closest gap to ido-mode. I improved a decent part of icomplete.el, so Icomplete mode is now better by itself. But that gap to ido-mode is still annoyingly (and legitimately) there, and we can't just change icomplete-mode's defaults like that. So fido-mode. It's really just icomplete with slightly different defaults that emulate ido mode as close as possible. Indeed the specific contract of fido-mode is to emulate ido-mode as much as possible, to use it as a reference, so if you find something in the emulation that can be improved, please share. Regarding your other points, that's just the way Emacs is. I like lean implementations that play along with the rest of Emacs, so I chose icomplete.el to use and to hack on. Jo=C3=A3o