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: Tooltipping enhancement request Date: Thu, 4 Mar 2004 13:17:12 -0500 Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: <200403041817.i24IHC08001260@projectile.siege-engine.com> NNTP-Posting-Host: deer.gmane.org X-Trace: sea.gmane.org 1078707466 1109 80.91.224.253 (8 Mar 2004 00:57:46 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Mon, 8 Mar 2004 00:57:46 +0000 (UTC) Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Mon Mar 08 01:57:41 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 1B095R-0005e1-00 for ; Mon, 08 Mar 2004 01:57:41 +0100 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1B095R-0004DP-00 for ; Mon, 08 Mar 2004 01:57:41 +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 1B08yu-0000PQ-2z for emacs-devel@quimby.gnus.org; Sun, 07 Mar 2004 19:50:56 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.30) id 1AyxPq-0005Jb-N2 for emacs-devel@gnu.org; Thu, 04 Mar 2004 13:17:50 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.30) id 1AyxPK-0004x6-4N for emacs-devel@gnu.org; Thu, 04 Mar 2004 13:17:49 -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 1AyxPJ-0004x1-HP for emacs-devel@gnu.org; Thu, 04 Mar 2004 13:17:17 -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 i24IHCAA001264 for ; Thu, 4 Mar 2004 13:17:12 -0500 Original-Received: (from zappo@localhost) by projectile.siege-engine.com (8.12.8/8.12.8/Submit) id i24IHC08001260; Thu, 4 Mar 2004 13:17:12 -0500 X-Authentication-Warning: projectile.siege-engine.com: zappo set sender to eric@siege-engine.com using -f Original-To: emacs-devel@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.2 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:20262 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:20262 Hi, I've got four enhancement requests based on some tools I've been writing. I think some of you already are familiar with some stuff I've been doing called "cedet" which you can read about here: http://cedet.sourceforge.net A feature I've been working with lately is called "intellisense" in other editors. I thought it would be nifty to write something better. I've opted to use an Emacs 21 tooltip to display completions. Some of that code was donated, and I had since attempted to fix some problems I encountered. You can see a screenshot of what it should look like here: http://cedet.sourceforge.net/intellisense.shtml - page http://cedet.sourceforge.net/inlinecompletion.png - picture Here are the requests: 1) A function that takes a frame, window, and buffer position and returns an X/Y location on the screen that would allow accurate tooltip positioning. At this time, a means of positioning the mouse pointer over a particular character is used to then position the tool-tip. That requires that the mouse move. In addition, things like header lines, split windows, and toolbars seem to effect the accuracy of that mechanism. 2) A means for accepting input from a tooltip (a strange idea) or a way to make a regular Emacs frame look like a tooltip. The tooltip is pretty good for me. I don't use the mouse much, but I watch others use this feature in other editors, and they all like to go clicky-clicky on the completion list. I think it would help mouse-bound users. The tooltip part is important because a timer can cause Emacs to go into this completion mode. Splitting windows and moving the mouse makes the feature difficult to accept. Here are two other requests unrelated to tooltips: 3) A means of having an overline cross the entire window. Also in the .png above, you can see some C definitions have a blue line over them. This overline is added to mimic a feature of IntelliJ that has a thin line over all big functions, effectively dividing up the buffer. It is an interesting thought, which I quickly got used to after implementing it. It would be nice if that overline could stretch across to the right side of the window to complete the effect. 4) Let multiple tools add header lines. The mode line has had a means of management that lets different little apps share it. The header line does not. I have a simple tools that makes the function definition that is clipped at the top of the screen appear in the header line. I think it's pretty cool and quite helpful. That then conflicts with tabbar. I had to turn it off in the picture above because it changed how the tooltip was positioned. The header line theme seems to be that tools use the entire line for their purposes. It would be nice if some official API made it easy for apps that wish to use add a header line to be given something that they can configure for their purposes without interfering with other tools attempting to do the same thing. Thanks for listening. 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