From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: Inline completion preview Date: Fri, 27 Oct 2023 16:05:14 +0300 Message-ID: References: <83h6mdfcv2.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19407"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Cc: Eshel Yaron , emacs-devel@gnu.org To: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= , Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Oct 27 15:06:25 2023 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 1qwMXf-0004ld-OE for ged-emacs-devel@m.gmane-mx.org; Fri, 27 Oct 2023 15:06:24 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qwMXM-0000Vl-52; Fri, 27 Oct 2023 09:06:04 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qwMWm-0000B0-9C for emacs-devel@gnu.org; Fri, 27 Oct 2023 09:05:30 -0400 Original-Received: from out1-smtp.messagingengine.com ([66.111.4.25]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qwMWh-0006Qz-31; Fri, 27 Oct 2023 09:05:26 -0400 Original-Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 36B875C025C; Fri, 27 Oct 2023 09:05:18 -0400 (EDT) Original-Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Fri, 27 Oct 2023 09:05:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm2; t= 1698411918; x=1698498318; bh=XWc40nHJUbx8YcfX3FoYu6jOwn1YB5Sotha zKx8naes=; b=Y4ZylYmmNdiG0KqYPaGnFJf1zRup5nhXWkv10flTmGVXznDQ4Hr 9RqWGSJU7vF3CLFGShlXaVR5lQCX+PRr05d27RmsrhPgreS334n8u7s/c4aq12Mh uI0KbWLn1fi6kH96YQxPr7cvJl4zWeMb0k+4ONpDsSwZJtg6UPz1/0YKNCGWHSdm iay4HdaNin6+eu5o6vPcibxnfzgkgy6Q1k/SCHZtL/7Yl/oBmz0iQGDc16bBHzht NuSBOBjuKf4N3p0dtxc/RWBo4wS3eLG+kma19Lameq7TsmBQv/BIQcVIjJFNFsKk BslY2JHbxG/zLdeHFCMAYMOLrKidY4QZXkw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1698411918; x=1698498318; bh=XWc40nHJUbx8YcfX3FoYu6jOwn1YB5Sotha zKx8naes=; b=Y4jmJuiaLXoTq+mbWLd8UBKSGnvkGpSBLsfrhDqD/1ekS78CDLd GcIWYpt0LUcp9fGy7QupUv9iGJC+eFB3tbpqEtXlGzXaolfk4C67w/BSg4yxejuo AB9KlCnJ7CG9qcxh5OcOINUcxmOFbBQURCn71MY3pbEa/qaHOtHUDANGizPLIhkE 8W1R7dsSWeBKqfJJJCXmRWikCl0BjMVTBi04z60maab/MmBXia/TB9+6eCTu0E5e s5wukyTawe0IECaSesf+KBYGPFysfY96L7739HNvmzOGH3nf1PeaPcxJz6tqWrmL lqhf0pDzOnR5nx/VXa6h+r7oicp4ih2l3xA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrleeggdeitdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefkffggfgfuvfevfhfhjggtgfesthekredttdefjeenucfhrhhomhepffhmihht rhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtth gvrhhnpefhffehleejffegffeugefhkeektdffgfehjedvgeejtedtudehueffgffgfeej heenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumh hithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 27 Oct 2023 09:05:15 -0400 (EDT) Content-Language: en-US In-Reply-To: Received-SPF: pass client-ip=66.111.4.25; envelope-from=dmitry@gutov.dev; helo=out1-smtp.messagingengine.com X-Spam_score_int: -60 X-Spam_score: -6.1 X-Spam_bar: ------ X-Spam_report: (-6.1 / 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, NICE_REPLY_A=-3.339, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:311934 Archived-At: On 27/10/2023 14:49, João Távora wrote: > On Thu, Oct 26, 2023 at 7:38 PM Eli Zaretskii wrote: >>> From: Eshel Yaron >>> Date: Thu, 26 Oct 2023 20:11:17 +0200 >>> >>> I want to propose adding an inline completion preview mechanism to Emacs. >>> >>> By inline completion preview, I mean an overlay that pop ups after point >>> showing one of the candidates for at-point completion. You can view >>> this mechanism as giving you a hint or suggesting a certain completion. >> I wish people would work on adding to Emacs some a GUI infrastructure >> for showing such completion candidates like other IDEs do, instead of >> once again using overlays with after-string properties. The result of >> using overlay strings is simply not visually appealing, and on top of >> that it causes quite a few complications for the display code. > I think agree with this, but it should work with Non-GUI Emacs, too right? > In a TUI Emacs, there have been these nice pop-up menus for a while. At first > sight the display infrastructure being used there seems suitable for showing > completions, so I wonder if that infrastructure couldn't be refactored > then reused > for a completion popup in core. I very much agree with this too. In TUI, the menu popups implementation could be partially reused. In GUI, someone could look into bringing posframe (a GNU ELPA packages which is based on child frames) into the core in some shape or form. But the hard part is debugging how the child frames interact with various platforms and window managers -- this is where the majority of its bugs lie, and we seem to lack that qualification (or at least the qualified people don't seem to have enough free time). Or the popups could use something else in GUI, IDK.