From: Eli Zaretskii <eliz@gnu.org>
To: "João Távora" <joaotavora@gmail.com>
Cc: emacs-devel@gnu.org
Subject: Re: Colorful line numbers
Date: Fri, 22 Jul 2022 16:27:56 +0300 [thread overview]
Message-ID: <831qudl1k3.fsf@gnu.org> (raw)
In-Reply-To: <87zgh1nyo6.fsf@gmail.com> (message from João Távora on Fri, 22 Jul 2022 13:02:01 +0100)
> From: João Távora <joaotavora@gmail.com>
> Cc: emacs-devel@gnu.org
> Date: Fri, 22 Jul 2022 13:02:01 +0100
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> >> Does checking for a given text property on some buffer text call into
> >> Lisp? If it isn't, and it's cheap, then this hypothetical feature could
> >> have very low overhead when not used.
> > You want the line number to have the same face as the character
> > displayed immediately after it?
>
> Not the "same face", rather some face which is the result of querying
> text properties on that text.
I don't understand what that means. Querying the properties how? And
doing what with the results of those queries? Eventually, you need a
face.
> > That can be done from C without calling Lisp, but how would that work
> > reliably? Any change in the buffer text will risk breaking the
> > feature.
>
> It's up to the Lisp package that is interested in this functionality to
> set or unset the correct text property.
Well, good luck with that! Because I don't think this can be
reasonably implemented from Lisp: there are too many aspects involved
that are hidden from Lisp.
> > And even this is already a complication I'd like to avoid: line number
> > of a line is rendered before we examine the buffer text of the line
> > (and even know whether there is any text there). Now we would need to
> > look forward in the buffer and get text properties of that text.
> > Which might not work correctly, btw, if jit-lock was not yet invoked
> > to produce the faces there.
>
> See above. This wouldn't be a problem because I'm not interesting in
> choosing the same face that jit-lock selected. The indirection would be
> some text property, say line-number-face
I guess this gets back to the question about "queries" and their
processing?
> > The implementation is in maybe_produce_line_number in xdisp.c.
>
> Yes, I've seen it (this is would I discovered the closed set of faces).
> But I'm not familiar with xdisp.c code and how to get to the buffer text
> about to be displayed besides the line number (if it indeed exists) and
> the associated text properties of that text. The only argument passed
> to maybe_produce_line_number is a 'struct it'. How to go from there to
> any valid buffer position of the same line that the 'struct it' refers
> to?
The answer depends on the condition(s) which that "valid buffer
position" should satisfy. In general, IT_CHARPOS(*it) gives you the
next buffer position to be processed.
next prev parent reply other threads:[~2022-07-22 13:27 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-22 7:50 Colorful line numbers João Távora
2022-07-22 11:00 ` Eli Zaretskii
2022-07-22 11:29 ` João Távora
2022-07-22 11:42 ` Eli Zaretskii
2022-07-22 12:02 ` João Távora
2022-07-22 13:27 ` Eli Zaretskii [this message]
2022-07-22 13:53 ` João Távora
2022-07-22 14:33 ` Eli Zaretskii
2022-07-22 15:10 ` João Távora
2022-07-22 15:38 ` Eli Zaretskii
2022-07-22 16:30 ` rmsbolt.el [Was: Colorful line numbers] João Távora
2022-07-22 19:53 ` Stefan Monnier
2022-07-23 6:13 ` Eli Zaretskii
2022-07-23 9:35 ` João Távora
2022-07-23 10:25 ` Eli Zaretskii
2022-07-23 14:43 ` Stefan Monnier
2022-07-23 15:52 ` Eli Zaretskii
2022-07-23 16:31 ` Stefan Monnier
2022-07-23 17:07 ` Colorful line numbers Eli Zaretskii
2022-07-23 18:18 ` rmsbolt.el [Was: Colorful line numbers] João Távora
2022-07-23 18:11 ` João Távora
2022-07-23 14:53 ` Jay Kamat
2022-07-23 17:25 ` Stefan Monnier
2022-07-23 17:34 ` Eglot to core [Was: rmsbolt.el [Was: Colorful line numbers]] João Távora
2022-07-23 17:52 ` Stefan Monnier
2022-07-24 18:58 ` João Távora
2022-07-24 19:04 ` Stefan Monnier
2022-07-25 1:05 ` Po Lu
2022-07-25 2:45 ` Stefan Monnier
2022-07-25 5:55 ` Philip Kaludercic
2022-07-25 15:31 ` Stefan Monnier
2022-07-25 6:23 ` Po Lu
2022-07-25 10:49 ` Bozhidar Batsov
2022-07-25 11:01 ` João Távora
2022-07-25 11:50 ` Felician Nemeth
2022-07-25 12:27 ` João Távora
2022-07-25 12:29 ` João Távora
2022-07-25 15:00 ` Felician Nemeth
2022-07-25 15:41 ` João Távora
2022-07-26 8:12 ` Felician Nemeth
2022-07-26 8:21 ` João Távora
2022-07-26 8:55 ` Felician Nemeth
2022-07-25 16:07 ` Max Brieiev
2022-07-25 17:05 ` João Távora
2022-07-25 15:33 ` Stefan Monnier
2022-07-22 12:18 ` Colorful line numbers Dmitry Gutov
2022-07-22 12:38 ` Stefan Monnier
2022-07-22 13:41 ` Dmitry Gutov
2022-07-22 14:01 ` João Távora
2022-07-22 23:32 ` Stefan Monnier
2022-07-23 18:50 ` Dmitry Gutov
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=831qudl1k3.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=joaotavora@gmail.com \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.