From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: "Eric M. Ludlam" Newsgroups: gmane.emacs.devel Subject: Re[4]: Tooltipping enhancement request Date: Fri, 12 Mar 2004 07:47:44 -0500 Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: <200403121247.i2CClicV030635@projectile.siege-engine.com> References: <200403041817.i24IHC08001260@projectile.siege-engine.com> <20040310.145625.98873014.jet@gyve.org> <200403120304.i2C340YX028762@projectile.siege-engine.com> NNTP-Posting-Host: deer.gmane.org X-Trace: sea.gmane.org 1079097847 25278 80.91.224.253 (12 Mar 2004 13:24:07 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 12 Mar 2004 13:24:07 +0000 (UTC) Cc: jet@gyve.org, emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Fri Mar 12 14:23:59 2004 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1B1mdr-0000KW-00 for ; Fri, 12 Mar 2004 14:23:59 +0100 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1B1mdq-0003Ef-00 for ; Fri, 12 Mar 2004 14:23:59 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.30) id 1B1m6Z-0006Oc-Ph for emacs-devel@quimby.gnus.org; Fri, 12 Mar 2004 07:49:35 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.30) id 1B1m5Q-0006NZ-Pz for emacs-devel@gnu.org; Fri, 12 Mar 2004 07:48:24 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.30) id 1B1m4t-0006Kj-C7 for emacs-devel@gnu.org; Fri, 12 Mar 2004 07:48:22 -0500 Original-Received: from [68.162.221.229] (helo=projectile.siege-engine.com) by monty-python.gnu.org with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.30) id 1B1m4s-0006Kb-OI for emacs-devel@gnu.org; Fri, 12 Mar 2004 07:47:51 -0500 Original-Received: from projectile.siege-engine.com (localhost.localdomain [127.0.0.1]) by projectile.siege-engine.com (8.12.8/8.12.8) with ESMTP id i2CCljAA030639; Fri, 12 Mar 2004 07:47:45 -0500 Original-Received: (from zappo@localhost) by projectile.siege-engine.com (8.12.8/8.12.8/Submit) id i2CClicV030635; Fri, 12 Mar 2004 07:47:44 -0500 X-Authentication-Warning: projectile.siege-engine.com: zappo set sender to eric@siege-engine.com using -f Original-To: "Jan D." In-reply-to: (jan.h.d@swipnet.se) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:20350 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:20350 >>> "Jan D." seems to think that: >> Here is an example of interaction. >> >> 1) User types in foo->b >> 2) User thinks, "Hmmm, what was that member again?" >> 3) Emacs becomes impatient, and pops up a list of options. >> >> Here you can now branch. >> >> b1.1) user sees the field wanted, and types some more, or presses TAB >> for >> completion. Each key press updating the list. > >I still don't see why this needs a timer. But you would need to I don't think the completion calculation code should run in a post command hook. The process needed for calculating the list is already managed by timers to reparse needed buffers, and analyze the current point to determine the datatype needed at point (int, float, some struct, etc). Once all that is done, and if there is no user input waiting, then finally the completion list is calculated, then displayed. If it were bound directly to a key so you had to push something to make it happen, that could be acceptable. I'm trying to push the envelope and have the list just pop up after a few seconds of idle time, in case you were trying to remember where that thing came from. >dynamically update the popup menu while it is popped up. I am not sure >any of the toolkits Emacs uses (GTK, Motif/Lesstif, Lucid) even >supports it. >I think it would be better to implement these lists in a kind of >buffer/window, that appears over a window. Enhancing the current tool >tip >would probably break things, so other mechanisms is probably better. >I'm thinking of some sort of "overlay windows" that may appear on top of >other windows, and without the usual window manager decorations. How to >handle input is something to figure out. There is a bigger chance to >get >this to work on all ports of Emacs than if popup menu code is enhanced. > >> >> b2.1) user sees the field wanted, and clicks on it to complete. > >This is more in line with what popup menus can do now. [ ... ] I think it is important to handle both of these cases (a and b.) It is similar to C-x C-f. if you hit TAB and the completion list shows and is way to long, you type in more characters, then hit TAB again. With the field of options reduced, then it is more tempting to go and click on the option you want. Given a choice for my own usage, I opt to sacrifice the clicking ability for the typing one. It would be nice to support both though as that is what is generally expected in other IDEs. Here is an external URL that talks about it more: http://www.peerfear.org/rss/permalink/2002/11/22/1038009860-Emacs_Needs_Floating_Windows_Advanced_Tooltips_for_IntelliSense_Support.shtml Here is the competition: http://www.activewin.com/reviews/software/devl/vsnet2003/features.shtml The window in question is about 5 example images down I think. Thanks Eric -- Eric Ludlam: zappo@gnu.org, eric@siege-engine.com Home: http://www.ludlam.net Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org