From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#19661: wrapping before window-width (new wrap-column text property?) Date: Sun, 25 Jan 2015 17:50:53 +0200 Message-ID: <831tmisvtu.fsf@gnu.org> References: <83ioh2nlow.fsf@gnu.org> <87sig6xech.fsf@ferrier.me.uk> <83fvc5ni0u.fsf@gnu.org> <87k31fwwyv.fsf@ferrier.me.uk> <87bnmq9ibf.fsf@ferrier.me.uk> <87lhlrx5fc.fsf@building.gnus.org> <878uhrcr5l.fsf@building.gnus.org> <83sifzjflk.fsf@gnu.org> <87egric2ki.fsf_-_@violet.siamics.net> <877fxaa49w.fsf@violet.siamics.net> <831tnicji7.fsf@gnu.org> <83y4pp9dku.fsf@gnu.org> <87387w8r2j.fsf@violet.siamics.net> <87iofxprfv.fsf_-_@violet.siamics.net> <8361bxtr33.fsf@gnu.org> <54C27D19.1080102@gmx.at> <83y4ots0v3.fsf@gnu.org> <54C36111.8030003@gmx.at> <83fvb0se6f.fsf@gnu.org> <54C4C7B2.1080708@gmx.at> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1422201131 19050 80.91.229.3 (25 Jan 2015 15:52:11 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 25 Jan 2015 15:52:11 +0000 (UTC) Cc: 19661@debbugs.gnu.org To: martin rudalics Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jan 25 16:52:10 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1YFPTt-0003zP-QV for geb-bug-gnu-emacs@m.gmane.org; Sun, 25 Jan 2015 16:52:10 +0100 Original-Received: from localhost ([::1]:38090 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFPTt-0001dr-23 for geb-bug-gnu-emacs@m.gmane.org; Sun, 25 Jan 2015 10:52:09 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52351) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFPTq-0001cs-1U for bug-gnu-emacs@gnu.org; Sun, 25 Jan 2015 10:52:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YFPTm-00004r-LF for bug-gnu-emacs@gnu.org; Sun, 25 Jan 2015 10:52:06 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:37281) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFPTm-0008WT-HF for bug-gnu-emacs@gnu.org; Sun, 25 Jan 2015 10:52:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1YFPTm-0007KR-5r for bug-gnu-emacs@gnu.org; Sun, 25 Jan 2015 10:52:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 25 Jan 2015 15:52:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19661 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 19661-submit@debbugs.gnu.org id=B19661.142220107828044 (code B ref 19661); Sun, 25 Jan 2015 15:52:02 +0000 Original-Received: (at 19661) by debbugs.gnu.org; 25 Jan 2015 15:51:18 +0000 Original-Received: from localhost ([127.0.0.1]:55973 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YFPT3-0007IF-Jv for submit@debbugs.gnu.org; Sun, 25 Jan 2015 10:51:18 -0500 Original-Received: from mtaout20.012.net.il ([80.179.55.166]:40150) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YFPT1-0007Ho-8C for 19661@debbugs.gnu.org; Sun, 25 Jan 2015 10:51:16 -0500 Original-Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0NIQ00B00P6HYU00@a-mtaout20.012.net.il> for 19661@debbugs.gnu.org; Sun, 25 Jan 2015 17:51:08 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NIQ00BU2PD8LY70@a-mtaout20.012.net.il>; Sun, 25 Jan 2015 17:51:08 +0200 (IST) In-reply-to: <54C4C7B2.1080708@gmx.at> X-012-Sender: halo1@inter.net.il X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:98707 Archived-At: > Date: Sun, 25 Jan 2015 11:38:42 +0100 > From: martin rudalics > CC: 19661@debbugs.gnu.org > > >> Layouts should be handled at the Elisp level. > > > > This is impossible with the current Emacs design, and you know it. > > The design is that Lisp programs _specify_ the layout, by setting up > > text properties, overlays, and local variables. The actual _handling_ > > of the layout is done by the display engine, which is not exposed to > > Lisp. > > > > So if a particular kind of layout is not supported by the display > > engine, you cannot specify it in Lisp. > > The windows code does provide the display engine with a clipping > rectangle and two buffer positions where to start displaying text in > that rectangle and where to display the cursor (the latter may be > overridden by the display engine). Together, these determine the basic > layout of buffer portions on screen and can be used by Lisp programs. Sorry for being dense, this being just the first weekday for me, but what "windows code" does that, please? In any case, telling the display engine where to start the display is a far cry from telling it how to lay out the screen from that point onwards. > > I agree, but I don't think this can or should be done in Lisp. Over > > the years, I've seen many features that attempted to produce fancy > > display traits not supported by the engine, and they all look kludgey > > to me. They also break very easily. > > With multiple columns we have to provide an API. For example, to decide > whether the first character of a buffer's line is also the the first > character of a line in the rectangle displaying that line. Otherwise, > we cannot provide the navigation facilities Ivan asked for. If each > column is displayed in a separate rectangle, the first character of a > line is always the first character of the rectangle displaying that line > and you can handle this distinction, and thus provide the API, on the > Lisp level. Providing an API is not equivalent to implementing it. In order for us to be able to provide such an API, the display engine should implement the support such an API will need. And that's the hard part of the job -- how to perform this layout. Once we figure that out, providing an API for controlling it will be easy.