From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: ndame Newsgroups: gmane.emacs.devel Subject: Emacs should provide more modern item completion out of the box Date: Thu, 2 Jan 2020 14:44:58 +0100 (CET) Message-ID: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_16464_930356296.1577972647473" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="98814"; mail-complaints-to="usenet@blaine.gmane.org" To: "emacs-devel@gnu.org" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Jan 02 14:45:59 2020 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 1in0nX-000Pau-1W for ged-emacs-devel@m.gmane.org; Thu, 02 Jan 2020 14:45:59 +0100 Original-Received: from localhost ([::1]:41242 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1in0nV-0006fa-Tp for ged-emacs-devel@m.gmane.org; Thu, 02 Jan 2020 08:45:57 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:58896) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1in0ml-00062S-2K for emacs-devel@gnu.org; Thu, 02 Jan 2020 08:45:12 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1in0mj-0004vF-I9 for emacs-devel@gnu.org; Thu, 02 Jan 2020 08:45:10 -0500 Original-Received: from fmfe37.onbox.hu ([46.107.16.242]:25815 helo=web-out.onbox.hu) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1in0mi-0004at-Ug for emacs-devel@gnu.org; Thu, 02 Jan 2020 08:45:09 -0500 X-fm-smtp-source: yes Original-Received: from localhost (localhost [85.238.68.233]) by web-out.onbox.hu (Postfix) with SMTP id 47pTmp0hHszxkP for ; Thu, 2 Jan 2020 14:44:58 +0100 (CET) X-AccountId: 57978162 X-Originating-Ip: 85.238.68.233 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedufedrvdeguddgheeiucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuggftfghnshhusghstghrihgsvgdpucfhtffggffotefknfenuceurghilhhouhhtmecufedttdenucenucfjughrpefhkffugggtvfhiffesrgdtregstddtudenucfhrhhomhepnhgurghmvgcuoegvmhgrtghsuhhsvghrsehfrhgvvghmrghilhdrhhhuqeenucfkphepkeehrddvfeekrdeikedrvdeffeenucfrrghrrghmpehhvghloheppdhinhgvthepkeehrddvfeekrdeikedrvdeffedpmhgrihhlfhhrohhmpegvmhgrtghsuhhsvghrsehfrhgvvghmrghilhdrhhhupdhrtghpthhtohepvghmrggtshdquggvvhgvlhesghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedt DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=simple/relaxed; t=1577972698; s=20181004; d=freemail.hu; h=From:Message-ID:Subject:MIME-Version:Content-Type:To:Date; l=4483; bh=wzJXVyVEUTiq2CDju+XP567cC4+GPXGDRphFeMqjZmk=; b=OZ6ThicN4KJUvYndpoXEip578CGC0+qEydm1qBYkpvMj4tYBc3UElHGHtrb5KlRt ZqARG4l1U6f63E3YUzbMRpcfbE6nbBHVyhMAXUB0ntm5p1XepOh6tDBy861JCjHQrhF LVBOHSDcjU1tiw5XKdVGZJgGzzBhAYAHeS+rODu8KW7i1/xiY6HoDKT0T+UaYkn1adX AwcAzyifJAKrZVgYV5OLLnmLzyvYe35p03Pai3RKB/UGzuK9kXliamxtnz5HCqb0/G0 qlIGGx8k7inHPrIi08OUst+iHm3TU0FHrjA333mo8aQmCN+BHstBeS8V1le3zKff2ml yiERhDPBcA== X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x [fuzzy] X-Received-From: 46.107.16.242 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:243862 Archived-At: ------=_Part_16464_930356296.1577972647473 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit These days popular modern tools (IntelliJ, VSCode, etc.) all provide quick and efficient methods to select items from a set of possible completions. These completion tools have two main attributes: 1. The completion is some kind of flex completion where you don't have to know and type the searched item exactly, it's enough to type parts of it with or withouth spaces. E.g. to execute "recover-this-file" you'd just type "M-x recfile" and it's listed among the matches. Or to find "sort-numeric-fields" you type "nufi" or "sofi". The listing of matches usually involves some kind of recency bias, so items you used before are listed first which makes it very convenient to access your often used items, because in the list of matches they are listed before the ones you rarely or never use. 2. The other thing is that selecting from a set of items gives you instant feedback (maybe with a delay of a few hundred milliseconds), so you don't have to press TAB or other keys for completion, the matching items are listed immediately. (If there are too many matches then the first, say, 50 is listed and the completion indicates you have to keep typing in order to narrow down the number of matches more.) Emacs' current built in completion is kind of old fashined. Surely, there are people who prefer it, but most people according to my experience prefer completion systems like described above which provide instant feedback with flex matching. Emacs already has such packages which provide that experience. I'm aware that integrating an external package for built in completion involves copyright issues and extra work, so let's put those issues aside for the moment, I'm more interested in the user interface angle here. Do you agree that Emacs could benefit from such a modern completion system (for M-x, etc.) by providing a more attractive out of the box experience? ------=_Part_16464_930356296.1577972647473 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit

These days popular modern tools (IntelliJ, VSCode, etc.) all provide
quick and efficient methods to select items from a set of possible
completions. These completion tools have two main attributes:


1. The completion is some kind of flex completion where you don't have
to know and type the searched item exactly, it's enough to type parts
of it with or withouth spaces.

E.g. to execute "recover-this-file" you'd just type "M-x recfile" and
it's listed among the matches. Or to find "sort-numeric-fields" you
type "nufi" or "sofi".

The listing of matches usually involves some kind of recency bias, so
items you used before are listed first which makes it very convenient
to access your often used items, because in the list of matches they
are listed before the ones you rarely or never use.


2. The other thing is that selecting from a set of items gives you
instant feedback (maybe with a delay of a few hundred milliseconds),
so you don't have to press TAB or other keys for completion, the
matching items are listed immediately. (If there are too many matches
then the first, say, 50 is listed and the completion indicates you
have to keep typing in order to narrow down the number of matches
more.)


Emacs' current built in completion is kind of old fashined. Surely,
there are people who prefer it, but most people according to my
experience prefer completion systems like described above which
provide instant feedback with flex matching.

Emacs already has such packages which provide that experience. I'm
aware that integrating an external package for built in completion
involves copyright issues and extra work, so let's put those issues
aside for the moment, I'm more interested in the user interface angle
here.

Do you agree that Emacs could benefit from such a modern completion
system (for M-x, etc.) by providing a more attractive out of the box
experience? ------=_Part_16464_930356296.1577972647473--