unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: Fill column indicator functionality
@ 2019-03-18  1:03 Ergus
  2019-03-18  3:35 ` Eli Zaretskii
  0 siblings, 1 reply; 192+ messages in thread
From: Ergus @ 2019-03-18  1:03 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Hi:

The variable fill-column is defined in the buffer.c file. I should
access it in every display_line when display-fill-column is enabled if I
want to keep the difference between display-fill-column-indicator-column
and fill-column. (when display-fill-column-indicator is t).

Whats the better method to do that?

I think that doing the check every time display_line is called is
something not really needed because a redisplay is triggered when those
variables change, so maybe is better to do a variable update in the
redisplay there and then we can access directly an int variable without
the need to call all the if-&&-else for every line. That must be cleaner
because the checking and comparisons will be just in one part of the
code. But I am wondering if that could have some undesired side effect.




^ permalink raw reply	[flat|nested] 192+ messages in thread
* Re: Fill column indicator functionality
@ 2019-05-04 22:51 Keith David Bershatsky
  0 siblings, 0 replies; 192+ messages in thread
From: Keith David Bershatsky @ 2019-05-04 22:51 UTC (permalink / raw)
  To: spacibba; +Cc: contovob, alptekin.aker, eliz, ofv, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1610 bytes --]

I understand that the primary goals are lightweight and speed, and I fully appreciate those goals.

I see that the current draft only deals with glyph rows ending _prior_ to the fill-column, and then an extra glyph is added subsequent thereto for the purposes of creating a visible fill column indicator.

I would suggest devising a mechanism that can intersect characters (at any given X coordinate) for glyph rows that extend beyond the fill-column, including, variable pitch and mono-spaced fonts.  Attached is a screenshot of what this would look like in Emacs.

Admittedly, the code used to create the visible fill column indicator in the screenshot (capable of intersecting characters at any given X) is anything but lightweight _and_ it is only for GUI versions of Emacs (NS/W32/X11).  It is, however, pretty darn quick....

Perhaps there is an overlay that can be used that is capable of intersecting characters, or a thin vertical window spanning the window-body-height that is one pixel wide; e.g., all three GUI platforms can create a vertical window as thin or thick as desired (such as a vertical scroll bar).  There are platform options to repaint or suppress repainting when removing windows ....  Emacs already has the ability to redraw the glyphs that fall within a given rectangle using the w->current_matrix after update_window has already done its thing ....

In case anyone is interested in the code used to generate the screenshot below, the latest proof concept patch for feature requests 17684 / 22873 is now at version 19.002:

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22873#134


[-- Attachment #2: 17684_22873__19_002.png --]
[-- Type: application/png, Size: 404651 bytes --]

^ permalink raw reply	[flat|nested] 192+ messages in thread
* Re: Fill column indicator functionality
@ 2019-03-15 16:59 Drew Adams
  2019-03-15 18:21 ` Eli Zaretskii
  2019-03-15 19:51 ` Ergus
  0 siblings, 2 replies; 192+ messages in thread
From: Drew Adams @ 2019-03-15 16:59 UTC (permalink / raw)
  To: spacibba, emacs-devel; +Cc: esq

(Caveat: I haven't really been following this thread.
Apologies if I misunderstand the intention or the
scope, e.g., if this is off topic.)

I guess y'all are trying to come up with the ability
to have vertical display lines similar to window
dividers - maybe 1-pixel wide (or configurable as
N pixels wide?).

Keith is apparently working on such a thing for a
fake-cursors implementation.  And this thread is
about using such a thing for indicating the fill
column.

Do I understand that right?  If so, will the approach
to doing this be general, so the same implementation
(in C) can be used for both of these applications?

In that case, could it also be used also for vertical
lines separating table cells and other things.

If so (if we'll have a general feature for such
support) will there be something similar for
horizontal lines?  And will we be able to limit
such lines (start and stop positions), or will
they always be across an entire window?



^ permalink raw reply	[flat|nested] 192+ messages in thread
* Fill column indicator functionality
@ 2019-02-05 10:53 Ergus
  2019-02-05 16:41 ` Eli Zaretskii
  0 siblings, 1 reply; 192+ messages in thread
From: Ergus @ 2019-02-05 10:53 UTC (permalink / raw)
  To: emacs-devel

Hi guys:

I am not sure if this is the right mailing list to ask for this.

I can't find any fill column indication functionality in emacs. For 80
(or 120) sacred column rule.

Looking around there is the fill-column-indicator package in melpa that
I have been using for a while, but recently it has been abandoned, but
also it is incompatible with native functionalities like
show-trailing-whitespace, so it enforces to use whitespace-mode instead.

Is it too difficult to add such a functionality native in emacs as you
did with the line numbers in the last release? So it will be much better
and it is not a so fancy functionality?

Thanks in advance.



^ permalink raw reply	[flat|nested] 192+ messages in thread

end of thread, other threads:[~2019-05-05 14:40 UTC | newest]

Thread overview: 192+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-03-18  1:03 Fill column indicator functionality Ergus
2019-03-18  3:35 ` Eli Zaretskii
2019-03-18 11:42   ` Ergus
2019-03-18 17:10     ` Eli Zaretskii
2019-04-02 12:42       ` Ergus
2019-04-02 13:03         ` Óscar Fuentes
2019-04-02 13:25           ` Óscar Fuentes
2019-04-02 13:37           ` Ergus
2019-04-02 15:07             ` Eli Zaretskii
2019-04-02 15:35               ` Ergus
2019-04-02 15:44                 ` Eli Zaretskii
2019-04-02 16:36                   ` Ergus
2019-04-02 16:48                     ` Eli Zaretskii
2019-04-02 17:00                       ` Ergus
2019-04-02 17:26                         ` Eli Zaretskii
2019-04-02 17:48                           ` Ergus
2019-04-02 18:28                             ` Eli Zaretskii
2019-04-02 21:22                               ` Ergus
2019-04-03  5:20                                 ` Eli Zaretskii
2019-04-03 10:22                                   ` Ergus
2019-04-03 11:11                                     ` Eli Zaretskii
2019-04-05  9:10                                       ` Robert Pluim
2019-04-05 10:36                                         ` Ergus
2019-04-05 11:47                                           ` Eli Zaretskii
2019-04-05 12:13                                             ` Robert Pluim
2019-04-05 12:46                                               ` Eli Zaretskii
2019-04-05 14:09                                                 ` Robert Pluim
2019-04-05 14:13                                                   ` Eli Zaretskii
2019-04-05 14:38                                                     ` Eli Zaretskii
2019-04-05 15:04                                             ` Ergus
2019-04-05 15:17                                               ` Eli Zaretskii
2019-04-05 17:30                                                 ` Ergus
2019-04-05 19:05                                                   ` Eli Zaretskii
2019-04-05 20:03                                                     ` Ergus
2019-04-05 21:10                                                       ` Óscar Fuentes
2019-04-05 22:01                                                         ` Ergus
2019-04-05 22:20                                                           ` Óscar Fuentes
2019-04-06  6:49                                                         ` Eli Zaretskii
2019-04-06 11:06                                                           ` Ergus
2019-04-06 12:53                                                             ` Eli Zaretskii
2019-04-06  6:51                                                       ` Eli Zaretskii
2019-04-06 13:21                                                         ` Eli Zaretskii
2019-04-06 15:20                                                           ` Ergus
2019-04-06 16:00                                                             ` Eli Zaretskii
2019-04-06 18:59                                                               ` Ergus
2019-04-06 19:07                                                                 ` Eli Zaretskii
2019-04-06 19:51                                                                   ` Ergus
2019-04-07 18:19                                                                   ` Ergus
2019-04-07 18:31                                                                     ` Eli Zaretskii
2019-04-07 18:35                                                                       ` Ergus
2019-04-07 18:38                                                                       ` Ergus
2019-04-07 19:02                                                                         ` Eli Zaretskii
2019-04-07 20:05                                                                           ` Ergus
2019-04-08  2:27                                                                             ` Eli Zaretskii
2019-04-08  8:51                                                                               ` Ergus
2019-04-08 14:57                                                                                 ` Eli Zaretskii
2019-04-08 16:04                                                                                   ` Ergus
2019-04-12 13:46                                                                                   ` Ergus
2019-04-12 13:54                                                                                     ` Eli Zaretskii
2019-05-01 11:08                                                                                       ` Ergus
2019-05-03 13:19                                                                                         ` Eli Zaretskii
2019-05-03 14:14                                                                                           ` Basil L. Contovounesios
2019-05-03 15:10                                                                                             ` Eli Zaretskii
2019-05-03 15:25                                                                                               ` Basil L. Contovounesios
2019-05-03 16:21                                                                                                 ` Eli Zaretskii
2019-05-03 16:18                                                                                             ` Ergus
2019-05-03 17:49                                                                                           ` Ergus
2019-05-03 18:32                                                                                             ` Eli Zaretskii
2019-05-03 18:39                                                                                             ` Eli Zaretskii
2019-05-03 21:05                                                                                               ` Ergus
2019-05-04  6:54                                                                                                 ` Eli Zaretskii
2019-05-04  9:37                                                                                                   ` Ergus
2019-05-04 11:04                                                                                                     ` Eli Zaretskii
2019-05-04 11:29                                                                                                       ` Óscar Fuentes
2019-05-04 15:44                                                                                                         ` Alp Aker
2019-05-04 15:59                                                                                                           ` Eli Zaretskii
2019-05-04 16:32                                                                                                             ` Eli Zaretskii
2019-05-04 16:32                                                                                                             ` Alp Aker
2019-05-04 16:36                                                                                                               ` Eli Zaretskii
2019-05-04 16:38                                                                                                                 ` Alp Aker
2019-05-04 16:42                                                                                                                   ` Eli Zaretskii
2019-05-05 14:40                                                                                                                     ` Ergus
2019-05-04 16:42                                                                                                             ` Ergus
2019-05-03 14:34                                                                                         ` Basil L. Contovounesios
2019-05-03 15:31                                                                                         ` Alp Aker
2019-04-07 20:51                                                                           ` Ergus
2019-04-07 21:23                                                                             ` Stefan Monnier
2019-04-07 21:37                                                                               ` Ergus
2019-04-07 21:39                                                                                 ` Stefan Monnier
2019-04-05 13:06                                           ` Eli Zaretskii
2019-04-05 15:28                                             ` Eli Zaretskii
2019-04-05 18:11                                               ` Ergus
2019-04-05 19:03                                                 ` Eli Zaretskii
2019-04-05 21:15                                                   ` Ergus
2019-04-06 10:13                                                     ` Robert Pluim
2019-04-06 12:54                                                       ` Eli Zaretskii
2019-04-05 11:44                                         ` Eli Zaretskii
2019-04-05 12:09                                           ` Robert Pluim
2019-04-05 12:44                                             ` Eli Zaretskii
2019-04-05 13:21                                               ` Eli Zaretskii
2019-04-05 13:47                                                 ` Robert Pluim
2019-04-05 14:08                                               ` Robert Pluim
2019-04-03 12:13                                     ` Stefan Monnier
2019-04-02 23:11                       ` Dmitry Gutov
2019-04-02 17:01                     ` Robert Pluim
2019-04-02 17:26                       ` Ergus
2019-04-02 17:50                         ` Robert Pluim
  -- strict thread matches above, loose matches on Subject: below --
2019-05-04 22:51 Keith David Bershatsky
2019-03-15 16:59 Drew Adams
2019-03-15 18:21 ` Eli Zaretskii
2019-03-15 19:18   ` Drew Adams
2019-03-15 19:30     ` Eli Zaretskii
2019-03-15 19:51 ` Ergus
2019-02-05 10:53 Ergus
2019-02-05 16:41 ` Eli Zaretskii
2019-02-05 18:47   ` Ergus
2019-02-05 19:56     ` Drew Adams
2019-02-05 23:32       ` Ergus
2019-02-06 16:08     ` Eli Zaretskii
2019-02-06 20:48       ` John Yates
2019-02-06 22:25         ` Ergus
2019-02-07  1:41           ` Basil L. Contovounesios
2019-02-07 14:31             ` Eli Zaretskii
2019-02-10 22:04               ` Ergus
2019-02-11 15:55                 ` Eli Zaretskii
2019-02-11 16:56                   ` Jimmy Aguilar Mena
2019-02-11 17:13                     ` Eli Zaretskii
2019-03-08 18:57                       ` Ergus
2019-03-08 20:06                         ` Eli Zaretskii
2019-03-09 13:22                           ` Ergus
2019-03-09 14:10                             ` Eli Zaretskii
2019-03-11 10:48                               ` Ergus
2019-03-11 15:30                                 ` Eli Zaretskii
2019-03-11 19:58                                   ` Andy Moreton
2019-03-11 20:24                                     ` Eli Zaretskii
2019-03-12 15:29                                   ` Ergus
2019-03-12 16:19                                     ` Eli Zaretskii
2019-03-12 19:20                                       ` Ergus
2019-03-13 16:19                                         ` Eli Zaretskii
2019-03-13 20:02                                           ` Ergus
2019-03-13 20:09                                             ` Eli Zaretskii
2019-03-14  3:02                                               ` Ergus
2019-03-14  6:40                                                 ` Eli Zaretskii
2019-03-14 16:51                                                   ` Ergus
2019-03-14 17:59                                                     ` Andreas Schwab
2019-03-14 18:22                                                     ` Eli Zaretskii
     [not found]                                                       ` <20190314211313.giyz7p6jtmquabea@Ergus>
     [not found]                                                         ` <83bm2c1smi.fsf@gnu.org>
2019-03-15 20:56                                                           ` Ergus
2019-03-15 22:52                                                             ` Óscar Fuentes
2019-03-15 23:22                                                               ` Ergus
2019-03-15 23:47                                                                 ` Óscar Fuentes
2019-03-16  6:50                                                                   ` Ergus
2019-03-16  7:48                                                                 ` Eli Zaretskii
2019-03-16  7:42                                                               ` Eli Zaretskii
2019-03-16 12:26                                                             ` Eli Zaretskii
2019-03-17 17:28                                                               ` Alp Aker
2019-03-17 18:03                                                                 ` Ergus
2019-03-17 18:40                                                                 ` Eli Zaretskii
2019-03-16  9:36                                                           ` Ergus
2019-03-16 12:40                                                             ` Eli Zaretskii
2019-03-14 21:28                                                     ` Óscar Fuentes
2019-03-14 23:54                                                       ` Ergus
2019-03-14 18:58                                                   ` Clément Pit-Claudel
2019-03-15  7:30                                                     ` Eli Zaretskii
2019-03-15 12:44                                                       ` Clément Pit-Claudel
2019-03-15 14:07                                                         ` Óscar Fuentes
2019-03-15 14:54                                                           ` Clément Pit-Claudel
2019-03-15 15:15                                                             ` Óscar Fuentes
2019-03-15 15:30                                                               ` Clément Pit-Claudel
2019-03-15 14:12                                                         ` Eli Zaretskii
2019-03-15 14:35                                                           ` Clément Pit-Claudel
2019-03-15 16:13                                                             ` Eli Zaretskii
2019-03-15 18:26                                                               ` Clément Pit-Claudel
2019-03-15 19:14                                                                 ` Eli Zaretskii
2019-03-15 15:13                                                         ` Stefan Monnier
2019-03-15 13:00                                                       ` Alp Aker
2019-03-15 13:30                                                         ` Mattias Engdegård
2019-03-15 14:24                                                           ` Eli Zaretskii
2019-03-15 15:05                                                             ` Mattias Engdegård
2019-03-15 15:54                                                               ` Eli Zaretskii
2019-03-15 15:09                                                             ` Stefan Monnier
2019-03-15 15:56                                                               ` Eli Zaretskii
2019-03-15 13:54                                                         ` Eli Zaretskii
2019-03-15 14:19                                                           ` Alp Aker
2019-03-15 14:58                                                             ` Clément Pit-Claudel
2019-03-16 15:07                                                               ` Johan Bockgård
2019-03-16 15:22                                                                 ` Clément Pit-Claudel
2019-03-15 15:43                                                             ` Eli Zaretskii
2019-03-15 17:24                                                               ` Óscar Fuentes
2019-03-15 18:28                                                                 ` Clément Pit-Claudel
2019-03-15 14:35                                                           ` Alp Aker
2019-03-09 18:02                             ` John Yates
2019-03-09 18:23                               ` Eli Zaretskii

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).