unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Eli Zaretskii <eliz@gnu.org>
Cc: alexanderm@web.de, 27427@debbugs.gnu.org
Subject: bug#27427: 26.0.50; Native line numbers lead to display error in company-mode popup
Date: Sun, 25 Jun 2017 17:31:59 +0300	[thread overview]
Message-ID: <8ec1b301-79dc-7d11-b3f9-85ae2e925785@yandex.ru> (raw)
In-Reply-To: <83wp81u8rz.fsf@gnu.org>

On 6/24/17 10:47 AM, Eli Zaretskii wrote:

> I guess you were just lucky, because in all of the other cases the
> additional horizontal shift was somehow either accounted for or (in
> the case of overlay-arrow) non-existent.  But the principle still
> stands: the display engine is allowed to insert glyphs it invents out
> of thin air at the edges of the text area, and Emacs always made use
> of this.

Try as I might, I can't repro those kind of problems. Line wrap 
indicators in the terminal usually come at the right. And I think it's 
aesthetically important that the extra glyphs don't shift line text to 
the right unless absolutely necessary, so those issues don't materialize.

The choice to use one overlay instead of one-overlay-per-line also makes 
some problems easier. Anyway, naturally, a proper popup will be better.

> It will only break modes that assume too much about layout.  And given
> the popularity of the line numbers, there's no other practical way
> except adapt those add-on packages, starting from company-mode.

I think you're trying too hard to stay away from the margins. But 
anyway, we have the alternative solution now.

>> I'm saying the users seem willing to wait for a scalable solution, and
>> use a margin in the meantime.
> 
> I think you have it backwards: the margin-based solutions were tried
> and were found not to be scalable.

I don't see you contradicting me. The _current_ margin-based solutions 
are not scalable in terms of margin-using features, but they can be, 
when we work on that. And the users seem willing to wait for that.

>> I can try to outline a possible API. Do we have an existing bug report
>> where that discussion would be better placed?
> 
> Bug#24193.
> 
>> If you have a link to a previous discussion, that would be great as well.
> 
> Here's one (I think there were more):
> 
>    http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01171.html
> 
> FWIW, I don't recommend going in that direction, as I believe we will
> again bump into the same basic disagreements due to conflicting goals.
> That's why I decided to stay away of the margins in the first place.

Thanks! I think I have something to contribute. But TBH the use case in 
the emacs-devel thread is ridiculous. We should be able to provide the 
functionality offered in the API of common IDEs, and if that doesn't let 
someone to use the margins as the fill-column, too bad.

It still might, but we can't consider all use cases equally valid.

>> And isn't counting lines in Lisp considered too slow?
> 
> When done as part of routine redisplay, off the post-command-hook,
> yes.  But company-mode is not used during routine redisplay, as in
> during scrolling through the window, right?

It's using post-command-hook, though. Redoing the line numbers rendering 
is not something I'm looking forward to either.

> But that was only one of my goals, the other was to do in
> the infrastructure something that can be done well only there.

Meaning, to use something other than the margins for display?

>> Agreed that it's the right direction (although I wouldn't say no to a
>> popup library in the core either ;-). Would it help in non-graphical
>> mode, though? Does it support non-maximized frames?
> 
> AFAIU, it supports any kind of frame.

I can't see a way to create a less-than-fullscreen frame in terminal 
Emacs (speaking of normal frames here).





  parent reply	other threads:[~2017-06-25 14:31 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-19 16:50 bug#27427: 26.0.50; Native line numbers lead to display error in company-mode popup Alexander Miller
2017-06-19 17:08 ` Eli Zaretskii
     [not found]   ` <6b307502-53db-e92d-1050-3cf0132537cb@web.de>
2017-06-19 19:23     ` Eli Zaretskii
2017-06-19 19:53       ` Alexander Miller
2017-06-19 21:03   ` Dmitry Gutov
2017-06-20 15:04     ` Eli Zaretskii
2017-06-21  2:18       ` Dmitry Gutov
2017-06-21  2:40         ` Eli Zaretskii
2017-06-21 13:04           ` Dmitry Gutov
2017-06-21 15:51             ` Alexander Miller
2017-06-21 18:15             ` Eli Zaretskii
2017-06-21 22:41               ` Dmitry Gutov
2017-06-22 14:55                 ` Eli Zaretskii
2017-06-22 23:17                   ` Dmitry Gutov
2017-06-23  9:10                     ` Eli Zaretskii
2017-06-23 23:26                       ` Dmitry Gutov
2017-06-24  7:47                         ` Eli Zaretskii
2017-06-24 17:28                           ` Eli Zaretskii
2017-06-24 20:43                             ` Dmitry Gutov
2017-06-25 13:51                               ` Dmitry Gutov
2017-06-25 14:32                                 ` Eli Zaretskii
2017-06-25 14:36                                   ` Dmitry Gutov
2017-06-25 14:13                               ` Eli Zaretskii
2017-06-25 14:46                                 ` Dmitry Gutov
2017-06-25 15:05                                   ` Eli Zaretskii
2017-06-25 16:35                                     ` Eli Zaretskii
2017-06-25 17:57                                     ` Eli Zaretskii
2017-06-25 22:56                                       ` Dmitry Gutov
2017-06-26  8:23                                         ` martin rudalics
2017-06-26 15:07                                           ` Eli Zaretskii
2017-06-27  7:06                                             ` martin rudalics
2017-06-27 14:48                                               ` Eli Zaretskii
2017-06-26 15:22                                         ` Eli Zaretskii
2017-06-26 15:28                                           ` Dmitry Gutov
2017-06-26 15:50                                             ` Eli Zaretskii
2017-06-26 17:12                                               ` Dmitry Gutov
2017-06-26 21:30                                           ` Johan Bockgård
2017-06-27 16:47                                             ` Eli Zaretskii
2017-07-13 23:04                                         ` Dmitry Gutov
2017-07-14  6:11                                           ` Eli Zaretskii
2017-07-14  6:24                                             ` Dmitry Gutov
2017-07-14  7:04                                               ` Eli Zaretskii
2017-07-15 17:38                                                 ` Dmitry Gutov
2017-07-15 17:49                                                   ` Eli Zaretskii
2017-06-25 14:31                           ` Dmitry Gutov [this message]
2017-06-25 14:54                             ` Eli Zaretskii
2017-06-25 15:25                               ` Dmitry Gutov
2017-06-25 16:12                               ` martin rudalics
2017-06-25 18:21                                 ` Eli Zaretskii
2017-06-25 15:59                             ` martin rudalics
2017-06-25 16:24                               ` Dmitry Gutov
2017-06-25 17:10                                 ` martin rudalics
2017-06-25 18:36                                   ` Eli Zaretskii
2017-06-25 18:51                                     ` Eli Zaretskii
2017-06-26  8:21                                       ` martin rudalics
2017-06-26  8:18                                     ` martin rudalics
2017-06-25 18:24                                 ` Eli Zaretskii
2017-06-26  7:15                                   ` martin rudalics
2017-06-26  8:18                                   ` martin rudalics
2017-06-26 12:07                                     ` Dmitry Gutov
2017-06-26 15:05                                     ` Eli Zaretskii
2017-06-27  7:06                                       ` martin rudalics
2017-06-27 14:48                                         ` Eli Zaretskii
2017-06-27 15:27                                           ` martin rudalics
2017-06-27 16:27                                             ` Eli Zaretskii
2017-06-28  8:45                                               ` martin rudalics
2017-06-28 16:48                                                 ` Eli Zaretskii
2017-06-28 18:35                                                   ` martin rudalics
2017-06-28 18:56                                                     ` Eli Zaretskii
2017-06-29  7:17                                                       ` martin rudalics
2017-06-29 16:29                                                         ` Eli Zaretskii
2017-06-30  8:27                                                           ` martin rudalics
2017-06-30  9:33                                                             ` Eli Zaretskii
2017-07-01 10:31                                                               ` martin rudalics
2017-07-01 11:59                                                                 ` Eli Zaretskii
2017-07-01 13:22                                                                   ` martin rudalics
2017-07-01 13:33                                                                     ` Eli Zaretskii
2017-07-01 15:20                                                                       ` martin rudalics
2017-07-01 15:41                                                                         ` Eli Zaretskii
2017-07-02  7:54                                                                           ` martin rudalics
2017-07-02 14:10                                                                             ` Eli Zaretskii
2017-07-02 14:45                                                                               ` Dmitry Gutov
2017-07-02 15:18                                                                                 ` Eli Zaretskii
2017-07-03  0:22                                                                                   ` Dmitry Gutov
2017-07-03  2:29                                                                                     ` Eli Zaretskii
2017-07-06  7:08                                                                                 ` martin rudalics
2017-07-06 13:06                                                                                   ` Dmitry Gutov
2017-07-07  6:52                                                                                     ` martin rudalics
2017-07-06  7:08                                                                               ` martin rudalics
2017-07-06 15:21                                                                                 ` Eli Zaretskii
2017-07-07  6:52                                                                                   ` martin rudalics
2017-06-29  1:34                                                   ` Dmitry Gutov
2017-06-29 16:20                                                     ` Eli Zaretskii
2017-06-29 17:55                                                       ` Dmitry Gutov
2017-06-25 19:00                               ` Eli Zaretskii
2017-06-26  8:21                                 ` martin rudalics
2017-06-26 15:06                                   ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8ec1b301-79dc-7d11-b3f9-85ae2e925785@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=27427@debbugs.gnu.org \
    --cc=alexanderm@web.de \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).