From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Konstantin Kharlamov Newsgroups: gmane.emacs.devel Subject: Re: What is the most useful potential feature which Emacs lacks? A: Autocompletion Date: Wed, 03 Jun 2020 14:39:31 +0300 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="121561"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.36.3 To: ndame , Emacs developers Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Jun 03 13:40:36 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 1jgRl4-000VRI-Nj for ged-emacs-devel@m.gmane-mx.org; Wed, 03 Jun 2020 13:40:34 +0200 Original-Received: from localhost ([::1]:60940 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jgRl3-0007i1-Pk for ged-emacs-devel@m.gmane-mx.org; Wed, 03 Jun 2020 07:40:33 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36784) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jgRkC-0006gr-QV for emacs-devel@gnu.org; Wed, 03 Jun 2020 07:39:40 -0400 Original-Received: from forward102o.mail.yandex.net ([2a02:6b8:0:1a2d::602]:34822) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jgRkA-00012V-K9 for emacs-devel@gnu.org; Wed, 03 Jun 2020 07:39:40 -0400 Original-Received: from mxback6g.mail.yandex.net (mxback6g.mail.yandex.net [IPv6:2a02:6b8:0:1472:2741:0:8b7:167]) by forward102o.mail.yandex.net (Yandex) with ESMTP id AB0B56680776; Wed, 3 Jun 2020 14:39:32 +0300 (MSK) Original-Received: from myt6-016ca1315a73.qloud-c.yandex.net (myt6-016ca1315a73.qloud-c.yandex.net [2a02:6b8:c12:4e0e:0:640:16c:a131]) by mxback6g.mail.yandex.net (mxback/Yandex) with ESMTP id a36Pd6Qo8h-dW8u4IOT; Wed, 03 Jun 2020 14:39:32 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1591184372; bh=myErmVKTt+GMa8rjdZJt0zcyGJljv9AdQ506LzdiK6A=; h=In-Reply-To:To:From:Subject:References:Date:Message-ID; b=nY/IAvgK97khDmwN9kYzmlBMDXCAMVa8QymZ2Eh+70ToSAYJr+l0gjKyneA3N75v3 VKlbsnvUqs7QDyZJ3w/U1N1mCC0ZmMGzz9zAhxG8Mwy4ve/ZZ2bwYY8PIxVQEBtycE 8rRjEaj/5vz5VQAZ/LYgnQGM+PBESx1Nxgf6RVw4= Authentication-Results: mxback6g.mail.yandex.net; dkim=pass header.i=@yandex.ru Original-Received: by myt6-016ca1315a73.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id 9duhvrcEpg-dVkuDOpR; Wed, 03 Jun 2020 14:39:31 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) In-Reply-To: Received-SPF: pass client-ip=2a02:6b8:0:1a2d::602; envelope-from=hi-angel@yandex.ru; helo=forward102o.mail.yandex.net X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN 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:251796 Archived-At: Hello, my 50 cents. The most missing feature, which has almost every text editor out there except Emacs, is no doubt sane autocompletion. "But there are autocompletion plugins!" someone might say. Okay, here's the problem: due to lack of multithreading, they usually set a timeout before autocompletion appears. This makes plugins limited to just one usecase: when a user doesn't know what to type next (like, doesn't remember exact method name, etc.). But most often people know what they want, and they type very fast. In this case what autocompletion should provide is prediction. And Emacs autocompletion plugins are failing bad at this: if you type fast, this means timeout is never expired, and completion never appears. I could set timeout to 0 (which I used to do some years ago), but this often results in terrible lags. And it gets worse: even if timeout expires, depending on completion backend you can get a freeze. For example, how about completion from tags backend, where the TAGS file is 183MB in size! This is the actual TAGS file I got from LibreOffice project. Lack of such simple but immensely useful feature is so disappointing that some years ago I was trying to migrate over to some other editor. And when I was asked "is it worth learning Emacs", I was recommending Vim. Because, while I use Emacs with Evil mode, and I admit this is much more powerful than Vim with plugins (which I use too for quick edits in terminal), but sane autocompletion is something anyone would expect to work out of the box. And the fact it not only doesn't work OOTB, but there's no way to make it even work, will sure turn away users quite quickly. On Mon, 2020-05-11 at 20:09 +0000, ndame wrote: > There is a discussion on Reddit about sponsoring development of > multithreading in Emacs, and people there say it's too hard, takes a > lot of time and it doesn't even bring that much benefit to the user. > > If this is the case (is it?) then what are those other features which > could bring much more tangible benefits for the user and assuming > somebody works on them full time sponsored by the community they can > be implemented in, say, a few months?