From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Bo Lin Newsgroups: gmane.emacs.devel Subject: Re: Layered display API Date: Thu, 14 Aug 2014 12:08:20 -0400 Message-ID: <87vbpv9hqj.fsf@dreamsphere.org> References: <86tx5r7l1j.fsf@yandex.ru> <53E097F7.5050407@gmx.at> <53E0ABF9.7070506@yandex.ru> <8338dbqcai.fsf@gnu.org> <53E14AF4.6050804@yandex.ru> <83k36mpbxg.fsf@gnu.org> <53E22245.4070307@yandex.ru> <8361i5pmch.fsf@gnu.org> <53E294BD.1000500@yandex.ru> <837g2knwb2.fsf@gnu.org> <53E818F0.2080104@yandex.ru> <8361hzjciv.fsf@gnu.org> <87egwj9659.fsf@dreamsphere.org> <837g2biy4x.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1408033197 24880 80.91.229.3 (14 Aug 2014 16:19:57 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 14 Aug 2014 16:19:57 +0000 (UTC) Cc: rudalics@gmx.at, dgutov@yandex.ru, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Aug 14 18:19:48 2014 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1XHxki-00026P-0G for ged-emacs-devel@m.gmane.org; Thu, 14 Aug 2014 18:19:48 +0200 Original-Received: from localhost ([::1]:54973 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XHxkh-0003Cu-J2 for ged-emacs-devel@m.gmane.org; Thu, 14 Aug 2014 12:19:47 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:56553) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XHxZp-0004GV-Gu for emacs-devel@gnu.org; Thu, 14 Aug 2014 12:08:40 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XHxZi-0001o8-TC for emacs-devel@gnu.org; Thu, 14 Aug 2014 12:08:33 -0400 Original-Received: from mail-qg0-f52.google.com ([209.85.192.52]:43438) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XHxZi-0001o0-Pm for emacs-devel@gnu.org; Thu, 14 Aug 2014 12:08:26 -0400 Original-Received: by mail-qg0-f52.google.com with SMTP id f51so1190395qge.39 for ; Thu, 14 Aug 2014 09:08:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-type; bh=ZjgOZFTSURjlH67ixvVu9ixAODHC9MYvdmiX4yTf374=; b=mHYEF9aW5zdrMbD+zfnD++bK1NX2LlfbJVtSuWGAZciwvsATiC816GchCgAiIci7bC Feo17NEzMrayeuet14aEEwSYs4Tb81bGhKT1vJ/ZHdW6gdQO1WTij1oFrBa5H2DO9Ylx Od8KO58d/XhrxWr3n8uoc4y1q4beXgqMbk5OFRjQyN7FWMZ4+L6YNUv87+tsE2Oy923c YzPtUlNoe/XaaL83xUMYrYVZW8c4cz4Gj+jjphzLwTJpVbv6h6eHtUVxyBaTKyQ1i2n2 ydN/KaHRYN6LbzklXTInCPsaJUNH/J7zGwTFxQDn+soS5Bw/zUNfdXe3UtcOA+g55zHy cDeQ== X-Gm-Message-State: ALoCoQkLjyZS+rE9sFmF1fkVKyL7E6IwyXI2KervxH5pab9Gh+qXpP2xSzcZobD+lW0zCHSfngF4 X-Received: by 10.140.30.180 with SMTP id d49mr17211610qgd.63.1408032506391; Thu, 14 Aug 2014 09:08:26 -0700 (PDT) Original-Received: from mail (pool-108-21-224-74.nycmny.fios.verizon.net. [108.21.224.74]) by mx.google.com with ESMTPSA id s16sm9318094qay.23.2014.08.14.09.08.25 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 14 Aug 2014 09:08:25 -0700 (PDT) Original-Received: from unicorn (sb130245065155.cs.sunysb.edu [130.245.65.155]) by mail (Postfix) with ESMTPSA id 7023520146; Thu, 14 Aug 2014 12:08:23 -0400 (EDT) In-Reply-To: <837g2biy4x.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 14 Aug 2014 05:49:18 +0300") User-Agent: Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.3 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.85.192.52 X-Mailman-Approved-At: Thu, 14 Aug 2014 12:19:44 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:173670 Archived-At: Eli Zaretskii writes: >> >> > What I meant is this: if you need to display below the last line of >> >> > the buffer text, put the overlay at EOB, and include newlines in the >> >> > overlay string when you need to move to the next screen line. To >> >> > align text horizontally you could use spaces or align-to display >> >> > properties in the string. >> >> >> >> Yes, I might try this, as soon as there's some suggestion how to handle >> >> the problem of `line-prefix' in this multi-overlay approach. >> > >> > Find the longest prefix and align everything so that the left edge >> > keeps clear of that? >> >> Zero length overlays don't get displayed so this won't work when the >> buffer is empty. > > When a buffer is empty, there are no line prefixes, right? Or did I > misunderstand what you eman? I thought this was about avoid padding the buffer text with newlines? >> >> >> This is indeed a missing feature. It should be easy enough to provide >> >> >> some special kind of display property that would overlay any other >> >> >> displayed content >> >> >> >> >> >> >> >> >> That would leave a question where will it have to be set on. >> >> >> Would that new kind of overlay be able to be displayed far >> >> >> from the position it's set on? >> >> > >> >> > No, I meant conceal the text produced by other display properties, and >> >> > display your overlay string instead. >> >> >> >> It doesn't seem to be solving much: if I want to display something in >> >> the middle of, say, large `display' text, there's no specific span of >> >> text to set that new property on. >> > >> > You'd put it on the overlay string. >> >> Ideally, for a popup tooltip, it should cover only the small >> rectangular area that is the tooltip, while leaving everything else >> intact to minimize visual disturbances. This is, AFAICT, currently >> impossible to achieve if you have to conceal anything with a >> 'display property, because: 1) in the simplest case the 'display is >> a string, but you don't know the proper display width of each >> character; and 2) the 'display can be not-strings. > > I wasn't talking about the currently existing display properties, I > was talking about a new property with the capabilities I described. Oh, I see. Yeah, that would be very nice. -Bo