all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#68849: 30.0.50; font-lock does not flush fontification after calling open-line
@ 2024-01-31 12:44 Ihor Radchenko
  2024-02-03  9:55 ` Eli Zaretskii
  2024-02-03 18:46 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 5+ messages in thread
From: Ihor Radchenko @ 2024-01-31 12:44 UTC (permalink / raw)
  To: 68849; +Cc: Kostas Papadakis

This bug was originally reported in
https://orgmode.org/list/c5fb9f63-185c-4e36-b13f-e887a4a29aae@yandex.com

I am not 100% sure if is Emacs bug, but my preliminary testing showed
anomalies in `jit-lock-after-change' -
(put-text-property jit-lock-start jit-lock-end 'fontified nil) somehow
did not apply the text properties. I suspect that I missed something
though.

May someone please help debugging this and figuring out if the problem
is on Emacs side?

Steps to reproduce:

1. Create bug.el:
(require 'org-faces)
(set-face-underline 'org-block-end-line t)
(setq org-fontify-whole-block-delimiter-line t)

2. Create bug.org:
#+begin_src
#+end_src

asd

3. Move point to the end of #+end_src line:
#+end_src<point>

4. M-x open-lien

5. Observe underline face being applied to the empty line _after_
#+end_src.

In GNU Emacs 30.0.50 (build 4, x86_64-pc-linux-gnu, GTK+ Version
 3.24.39, cairo version 1.18.0) of 2024-01-30 built on localhost
Repository revision: 9de29fb5b0396cb3929bd5668604fda076ca5ec4
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101011
System Description: Gentoo Linux

Configured using:
 'configure JAVAC=/etc/java-config-2/current-system-vm/bin/javac'

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>





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

* bug#68849: 30.0.50; font-lock does not flush fontification after calling open-line
  2024-01-31 12:44 bug#68849: 30.0.50; font-lock does not flush fontification after calling open-line Ihor Radchenko
@ 2024-02-03  9:55 ` Eli Zaretskii
  2024-02-03 18:46 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 0 replies; 5+ messages in thread
From: Eli Zaretskii @ 2024-02-03  9:55 UTC (permalink / raw)
  To: Ihor Radchenko, Stefan Monnier; +Cc: 68849, papadakis.k

> Cc: Kostas Papadakis <papadakis.k@yandex.com>
> From: Ihor Radchenko <yantar92@posteo.net>
> Date: Wed, 31 Jan 2024 12:44:09 +0000
> 
> This bug was originally reported in
> https://orgmode.org/list/c5fb9f63-185c-4e36-b13f-e887a4a29aae@yandex.com
> 
> I am not 100% sure if is Emacs bug, but my preliminary testing showed
> anomalies in `jit-lock-after-change' -
> (put-text-property jit-lock-start jit-lock-end 'fontified nil) somehow
> did not apply the text properties. I suspect that I missed something
> though.
> 
> May someone please help debugging this and figuring out if the problem
> is on Emacs side?
> 
> Steps to reproduce:
> 
> 1. Create bug.el:
> (require 'org-faces)
> (set-face-underline 'org-block-end-line t)
> (setq org-fontify-whole-block-delimiter-line t)
> 
> 2. Create bug.org:
> #+begin_src
> #+end_src
> 
> asd
> 
> 3. Move point to the end of #+end_src line:
> #+end_src<point>
> 
> 4. M-x open-lien
> 
> 5. Observe underline face being applied to the empty line _after_
> #+end_src.

Stefan, any suggestions?





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

* bug#68849: 30.0.50; font-lock does not flush fontification after calling open-line
  2024-01-31 12:44 bug#68849: 30.0.50; font-lock does not flush fontification after calling open-line Ihor Radchenko
  2024-02-03  9:55 ` Eli Zaretskii
@ 2024-02-03 18:46 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-02-04 13:33   ` Ihor Radchenko
  1 sibling, 1 reply; 5+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-02-03 18:46 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: 68849, Kostas Papadakis

> I am not 100% sure if is Emacs bug, but my preliminary testing showed
> anomalies in `jit-lock-after-change' -
> (put-text-property jit-lock-start jit-lock-end 'fontified nil) somehow
> did not apply the text properties. I suspect that I missed something
> though.

AFAICT the `put-text-property` works fine :-)
The problem is that your `org-fontify-extend-region` does not spread the
change to the "next line".

When `font-lock-extend-after-change-region-function` is nil, Emacs does
that for you.  Quoting `font-lock-extend-jit-lock-region-after-change`:

      (when (< end (point-max))
        (setq end
              (cond
               ((get-text-property end 'font-lock-multiline)
                (or (text-property-any end (point-max)
                                       'font-lock-multiline nil)
                    (point-max)))
               ;; If `end' has been set by the function above, don't corrupt it.
               (font-lock-extend-after-change-region-function end)
                ;; Rounding up to a whole number of lines should include the
                ;; line right after `end'.  Typical case: the first char of
                ;; the line was deleted.  Or a \n was inserted in the middle
                ;; of a line.
               (t (1+ end)))))

I still hope you can change Org mode so it uses
`font-lock-extend-region-functions` instead of
`font-lock-extend-after-change-region-function`.


        Stefan






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

* bug#68849: 30.0.50; font-lock does not flush fontification after calling open-line
  2024-02-03 18:46 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-02-04 13:33   ` Ihor Radchenko
  2024-02-04 14:24     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 5+ messages in thread
From: Ihor Radchenko @ 2024-02-04 13:33 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 68849, Kostas Papadakis

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> I am not 100% sure if is Emacs bug, but my preliminary testing showed
>> anomalies in `jit-lock-after-change' -
>> (put-text-property jit-lock-start jit-lock-end 'fontified nil) somehow
>> did not apply the text properties. I suspect that I missed something
>> though.
>
> AFAICT the `put-text-property` works fine :-)
> The problem is that your `org-fontify-extend-region` does not spread the
> change to the "next line".
>
> When `font-lock-extend-after-change-region-function` is nil, Emacs does
> that for you.  Quoting `font-lock-extend-jit-lock-region-after-change`:
> ...

Thanks for the pointer!
Fixed, on bugfix.
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=1abff3859

> I still hope you can change Org mode so it uses
> `font-lock-extend-region-functions` instead of
> `font-lock-extend-after-change-region-function`.

I am not taking on any major changes in the existing Org fontification
as it needs to be rewritten completely.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>





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

* bug#68849: 30.0.50; font-lock does not flush fontification after calling open-line
  2024-02-04 13:33   ` Ihor Radchenko
@ 2024-02-04 14:24     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-02-04 14:24 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: 68849, Kostas Papadakis

>> I still hope you can change Org mode so it uses
>> `font-lock-extend-region-functions` instead of
>> `font-lock-extend-after-change-region-function`.
>
> I am not taking on any major changes in the existing Org fontification
> as it needs to be rewritten completely.

So I heard, yes.  You won't crush my hopes so easily.
Oh, and BTW, in order to try and prevent that famous rewrite from making
the same mistake, a FIXME would be appreciated.


        Stefan






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

end of thread, other threads:[~2024-02-04 14:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-31 12:44 bug#68849: 30.0.50; font-lock does not flush fontification after calling open-line Ihor Radchenko
2024-02-03  9:55 ` Eli Zaretskii
2024-02-03 18:46 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-02-04 13:33   ` Ihor Radchenko
2024-02-04 14:24     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors

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.