GNU bug report logs - #57447
28.1.90; Can font-lock stop requesting fontification of invisible text?

Previous Next

Package: emacs;

Reported by: Ihor Radchenko <yantar92 <at> gmail.com>

Date: Sat, 27 Aug 2022 05:35:02 UTC

Severity: normal

Found in version 28.1.90

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 57447 in the body.
You can then email your comments to 57447 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#57447; Package emacs. (Sat, 27 Aug 2022 05:35:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ihor Radchenko <yantar92 <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 27 Aug 2022 05:35:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ihor Radchenko <yantar92 <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 28.1.90; Can font-lock stop requesting fontification of invisible
 text?
Date: Sat, 27 Aug 2022 13:34:57 +0800
Hi,

Org mode tends to hide large chunks of text under folded headlines.
I expect this hidden text to be ignored by the font-lock engine.

However, in reality, there appear to be some scenarios when hidden text
is, in fact, being requested for fontification.

I have an Org file with a number of folded headlines. 32 of them can fit
into one screen of text on my system, when folded. The total character
count contained within the folded headlines (both visible and inside the
32 hidden text chunks) is 12742. However, most of this text is folded, and only 2446 characters are visible in the buffer.

I expect font-lock to fontify around 2446 characters (32 lines), but
Emacs instead requests fontification of 9374 characters (315 lines; 10
screens of text) at once; ~1.5k chars for each folded text region.

Fontification of 10 screens of text is obviously 10x slower and can
create noticeable feedback slowdowns.

Can anything be done to make Emacs fontify less (or none) of the hidden
text?

The fontification log is:

org-font-lock: About to fontify 13481..15094
org-font-lock: Fontified drawer(13372..13487) completely.
org-font-lock: Fontified drawer(13372:+115) up to +115
org-font-lock: About to fontify 13487..15094
org-font-lock: Fontified headline(13487..13722) completely.
org-font-lock: Fontified headline(13487:+235) up to +95
org-font-lock: About to fontify 13582..15094
org-font-lock: Fontified section(13582..13722) completely.
org-font-lock: Fontified property-drawer(13582..13670) completely.
org-font-lock: Fontified property-drawer(13582:+88) up to +13
org-font-lock: About to fontify 13595..15094
org-font-lock: Fontified node-property(13595..13628) completely.
org-font-lock: Fontified node-property(13595:+33) up to +33
org-font-lock: About to fontify 13628..15094
org-font-lock: Fontified node-property(13628..13664) completely.
org-font-lock: Fontified node-property(13628:+36) up to +42
org-font-lock: About to fontify 13670..15094
org-font-lock: Fontified drawer(13670..13722) completely.
org-font-lock: Fontified drawer(13670:+52) up to +10
org-font-lock: About to fontify 13680..15094
org-font-lock: Fontified plain-list(13680..13716) completely.
org-font-lock: Fontified item(13680..13716) completely.
org-font-lock: Fontified item(13680:+36) up to +2
org-font-lock: About to fontify 13682..15094
org-font-lock: Fontified paragraph(13682..13716) completely.
org-font-lock: Fontified timestamp(13693..13715) completely.
org-font-lock: Fontified paragraph(13682:+34) up to +40
org-font-lock: About to fontify 13722..15094
org-font-lock: Fontified headline(13722..14172) completely.
org-font-lock: Fontified bold(13894..13911) completely.
org-font-lock: Fontified headline(13722:+450) up to +200
org-font-lock: About to fontify 13922..15094
org-font-lock: Fontified section(13922..14172) completely.
org-font-lock: Fontified property-drawer(13922..13974) completely.
org-font-lock: Fontified property-drawer(13922:+52) up to +13
org-font-lock: About to fontify 13935..15094
org-font-lock: Fontified node-property(13935..13968) completely.
org-font-lock: Fontified node-property(13935:+33) up to +39
org-font-lock: About to fontify 13974..15094
org-font-lock: Fontified drawer(13974..14089) completely.
org-font-lock: Fontified drawer(13974:+115) up to +10
org-font-lock: About to fontify 13984..15094
org-font-lock: Fontified plain-list(13984..14020) completely.
org-font-lock: Fontified item(13984..14020) completely.
org-font-lock: Fontified item(13984:+36) up to +2
org-font-lock: About to fontify 13986..15094
org-font-lock: Fontified paragraph(13986..14020) completely.
org-font-lock: Fontified timestamp(13997..14019) completely.
org-font-lock: Fontified paragraph(13986:+34) up to +34
org-font-lock: About to fontify 14020..15094
org-font-lock: Fontified clock(14020..14083) completely.
org-font-lock: Fontified timestamp(14027..14074) completely.
org-font-lock: Fontified clock(14020:+63) up to +69
org-font-lock: About to fontify 14089..15094
org-font-lock: Fontified paragraph(14089..14172) completely.
org-font-lock: Fontified link(14116..14170) completely.
org-font-lock: Fontified paragraph(14089:+83) up to +83
org-font-lock: About to fontify 14172..15094
org-font-lock: Fontified headline(14172..14342) completely.
org-font-lock: Fontified headline(14172:+170) up to +66
org-font-lock: About to fontify 14238..15094
org-font-lock: Fontified section(14238..14342) completely.
org-font-lock: Fontified property-drawer(14238..14290) completely.
org-font-lock: Fontified property-drawer(14238:+52) up to +13
org-font-lock: About to fontify 14251..15094
org-font-lock: Fontified node-property(14251..14284) completely.
org-font-lock: Fontified node-property(14251:+33) up to +39
org-font-lock: About to fontify 14290..15094
org-font-lock: Fontified drawer(14290..14342) completely.
org-font-lock: Fontified drawer(14290:+52) up to +10
org-font-lock: About to fontify 14300..15094
org-font-lock: Fontified plain-list(14300..14336) completely.
org-font-lock: Fontified item(14300..14336) completely.
org-font-lock: Fontified item(14300:+36) up to +2
org-font-lock: About to fontify 14302..15094
org-font-lock: Fontified paragraph(14302..14336) completely.
org-font-lock: Fontified timestamp(14313..14335) completely.
org-font-lock: Fontified paragraph(14302:+34) up to +40
org-font-lock: About to fontify 14342..15094
org-font-lock: Fontified headline(14342..14582) completely.
org-font-lock: Fontified headline(14342:+240) up to +136
org-font-lock: About to fontify 14478..15094
org-font-lock: Fontified section(14478..14582) completely.
org-font-lock: Fontified property-drawer(14478..14530) completely.
org-font-lock: Fontified property-drawer(14478:+52) up to +13
org-font-lock: About to fontify 14491..15094
org-font-lock: Fontified node-property(14491..14524) completely.
org-font-lock: Fontified node-property(14491:+33) up to +39
org-font-lock: About to fontify 14530..15094
org-font-lock: Fontified drawer(14530..14582) completely.
org-font-lock: Fontified drawer(14530:+52) up to +10
org-font-lock: About to fontify 14540..15094
org-font-lock: Fontified plain-list(14540..14576) completely.
org-font-lock: Fontified item(14540..14576) completely.
org-font-lock: Fontified item(14540:+36) up to +2
org-font-lock: About to fontify 14542..15094
org-font-lock: Fontified paragraph(14542..14576) completely.
org-font-lock: Fontified timestamp(14553..14575) completely.
org-font-lock: Fontified paragraph(14542:+34) up to +40
org-font-lock: About to fontify 14582..15094
org-font-lock: Fontified headline(14582..15285) completely.
org-font-lock: Fontified link(14604..14684) completely.
org-font-lock: Fontified headline(14582:+703) up to +113
org-font-lock: About to fontify 14695..15094
org-font-lock: Fontified section(14695..15285) completely.
org-font-lock: Fontified property-drawer(14695..14747) completely.
org-font-lock: Fontified property-drawer(14695:+52) up to +13
org-font-lock: About to fontify 14708..15094
org-font-lock: Fontified node-property(14708..14741) completely.
org-font-lock: Fontified node-property(14708:+33) up to +39
org-font-lock: About to fontify 14747..15094
org-font-lock: Fontified drawer(14747..14799) completely.
org-font-lock: Fontified drawer(14747:+52) up to +10
org-font-lock: About to fontify 14757..15094
org-font-lock: Fontified plain-list(14757..14793) completely.
org-font-lock: Fontified item(14757..14793) completely.
org-font-lock: Fontified item(14757:+36) up to +2
org-font-lock: About to fontify 14759..15094
org-font-lock: Fontified paragraph(14759..14793) completely.
org-font-lock: Fontified timestamp(14770..14792) completely.
org-font-lock: Fontified paragraph(14759:+34) up to +40
org-font-lock: About to fontify 14799..15094
org-font-lock: Fontified paragraph(14799..15095) completely.
org-font-lock: Fontified link(14799..14857) completely.
org-font-lock: Fontified verbatim(14968..15023) completely.
org-font-lock: Fontified paragraph(14799:+296) up to +295
org-font-lock: About to fontify 15275..16796
org-font-lock: Fontified src-block(15148..15285) completely.
org-font-lock: Fontified src-block(15148:+137) up to +137
org-font-lock: About to fontify 15285..16796
org-font-lock: Fontified headline(15285..15587) completely.
org-font-lock: Fontified headline(15285:+302) up to +49
org-font-lock: About to fontify 15334..16796
org-font-lock: Fontified section(15334..15587) completely.
org-font-lock: Fontified property-drawer(15334..15386) completely.
org-font-lock: Fontified property-drawer(15334:+52) up to +13
org-font-lock: About to fontify 15347..16796
org-font-lock: Fontified node-property(15347..15380) completely.
org-font-lock: Fontified node-property(15347:+33) up to +39
org-font-lock: About to fontify 15386..16796
org-font-lock: Fontified drawer(15386..15501) completely.
org-font-lock: Fontified drawer(15386:+115) up to +10
org-font-lock: About to fontify 15396..16796
org-font-lock: Fontified plain-list(15396..15432) completely.
org-font-lock: Fontified item(15396..15432) completely.
org-font-lock: Fontified item(15396:+36) up to +2
org-font-lock: About to fontify 15398..16796
org-font-lock: Fontified paragraph(15398..15432) completely.
org-font-lock: Fontified timestamp(15409..15431) completely.
org-font-lock: Fontified paragraph(15398:+34) up to +34
org-font-lock: About to fontify 15432..16796
org-font-lock: Fontified clock(15432..15495) completely.
org-font-lock: Fontified timestamp(15439..15486) completely.
org-font-lock: Fontified clock(15432:+63) up to +69
org-font-lock: About to fontify 15501..16796
org-font-lock: Fontified paragraph(15501..15587) completely.
org-font-lock: Fontified paragraph(15501:+86) up to +86
org-font-lock: About to fontify 15587..16796
org-font-lock: Fontified headline(15587..15963) completely.
org-font-lock: Fontified headline(15587:+376) up to +118
org-font-lock: About to fontify 15705..16796
org-font-lock: Fontified section(15705..15963) completely.
org-font-lock: Fontified property-drawer(15705..15825) completely.
org-font-lock: Fontified property-drawer(15705:+120) up to +13
org-font-lock: About to fontify 15718..16796
org-font-lock: Fontified node-property(15718..15751) completely.
org-font-lock: Fontified node-property(15718:+33) up to +33
org-font-lock: About to fontify 15751..16796
org-font-lock: Fontified node-property(15751..15819) completely.
org-font-lock: Fontified node-property(15751:+68) up to +74
org-font-lock: About to fontify 15825..16796
org-font-lock: Fontified drawer(15825..15877) completely.
org-font-lock: Fontified drawer(15825:+52) up to +10
org-font-lock: About to fontify 15835..16796
org-font-lock: Fontified plain-list(15835..15871) completely.
org-font-lock: Fontified item(15835..15871) completely.
org-font-lock: Fontified item(15835:+36) up to +2
org-font-lock: About to fontify 15837..16796
org-font-lock: Fontified paragraph(15837..15871) completely.
org-font-lock: Fontified timestamp(15848..15870) completely.
org-font-lock: Fontified paragraph(15837:+34) up to +40
org-font-lock: About to fontify 15877..16796
org-font-lock: Fontified paragraph(15877..15963) completely.
org-font-lock: Fontified paragraph(15877:+86) up to +86
org-font-lock: About to fontify 15963..16796
org-font-lock: Fontified headline(15963..16206) completely.
org-font-lock: Fontified link(16032..16090) completely.
org-font-lock: Fontified headline(15963:+243) up to +139
org-font-lock: About to fontify 16102..16796
org-font-lock: Fontified section(16102..16206) completely.
org-font-lock: Fontified property-drawer(16102..16154) completely.
org-font-lock: Fontified property-drawer(16102:+52) up to +13
org-font-lock: About to fontify 16115..16796
org-font-lock: Fontified node-property(16115..16148) completely.
org-font-lock: Fontified node-property(16115:+33) up to +39
org-font-lock: About to fontify 16154..16796
org-font-lock: Fontified drawer(16154..16206) completely.
org-font-lock: Fontified drawer(16154:+52) up to +10
org-font-lock: About to fontify 16164..16796
org-font-lock: Fontified plain-list(16164..16200) completely.
org-font-lock: Fontified item(16164..16200) completely.
org-font-lock: Fontified item(16164:+36) up to +2
org-font-lock: About to fontify 16166..16796
org-font-lock: Fontified paragraph(16166..16200) completely.
org-font-lock: Fontified timestamp(16177..16199) completely.
org-font-lock: Fontified paragraph(16166:+34) up to +40
org-font-lock: About to fontify 16206..16796
org-font-lock: Fontified headline(16206..16457) completely.
org-font-lock: Fontified link(16262..16342) completely.
org-font-lock: Fontified headline(16206:+251) up to +147
org-font-lock: About to fontify 16353..16796
org-font-lock: Fontified section(16353..16457) completely.
org-font-lock: Fontified property-drawer(16353..16405) completely.
org-font-lock: Fontified property-drawer(16353:+52) up to +13
org-font-lock: About to fontify 16366..16796
org-font-lock: Fontified node-property(16366..16399) completely.
org-font-lock: Fontified node-property(16366:+33) up to +39
org-font-lock: About to fontify 16405..16796
org-font-lock: Fontified drawer(16405..16457) completely.
org-font-lock: Fontified drawer(16405:+52) up to +10
org-font-lock: About to fontify 16415..16796
org-font-lock: Fontified plain-list(16415..16451) completely.
org-font-lock: Fontified item(16415..16451) completely.
org-font-lock: Fontified item(16415:+36) up to +2
org-font-lock: About to fontify 16417..16796
org-font-lock: Fontified paragraph(16417..16451) completely.
org-font-lock: Fontified timestamp(16428..16450) completely.
org-font-lock: Fontified paragraph(16417:+34) up to +40
org-font-lock: About to fontify 16457..16796
org-font-lock: Fontified headline(16457..16835) completely.
org-font-lock: Fontified link(16482..16540) completely.
org-font-lock: Fontified headline(16457:+378) up to +94
org-font-lock: About to fontify 16551..16796
org-font-lock: Fontified section(16551..16835) completely.
org-font-lock: Fontified property-drawer(16551..16603) completely.
org-font-lock: Fontified property-drawer(16551:+52) up to +13
org-font-lock: About to fontify 16564..16796
org-font-lock: Fontified node-property(16564..16597) completely.
org-font-lock: Fontified node-property(16564:+33) up to +39
org-font-lock: About to fontify 16603..16796
org-font-lock: Fontified drawer(16603..16655) completely.
org-font-lock: Fontified drawer(16603:+52) up to +10
org-font-lock: About to fontify 16613..16796
org-font-lock: Fontified plain-list(16613..16649) completely.
org-font-lock: Fontified item(16613..16649) completely.
org-font-lock: Fontified item(16613:+36) up to +2
org-font-lock: About to fontify 16615..16796
org-font-lock: Fontified paragraph(16615..16649) completely.
org-font-lock: Fontified timestamp(16626..16648) completely.
org-font-lock: Fontified paragraph(16615:+34) up to +40
org-font-lock: About to fontify 16655..16796
org-font-lock: Fontified paragraph(16655..16835) completely.
org-font-lock: Fontified paragraph(16655:+180) up to +141
org-font-lock: About to fontify 16827..18389
org-font-lock: Fontified paragraph(16655..16835) completely.
org-font-lock: Fontified paragraph(16655:+180) up to +180
org-font-lock: About to fontify 16835..18389
org-font-lock: Fontified headline(16835..16978) completely.
org-font-lock: Fontified headline(16835:+143) up to +39
org-font-lock: About to fontify 16874..18389
org-font-lock: Fontified section(16874..16978) completely.
org-font-lock: Fontified property-drawer(16874..16926) completely.
org-font-lock: Fontified property-drawer(16874:+52) up to +13
org-font-lock: About to fontify 16887..18389
org-font-lock: Fontified node-property(16887..16920) completely.
org-font-lock: Fontified node-property(16887:+33) up to +39
org-font-lock: About to fontify 16926..18389
org-font-lock: Fontified drawer(16926..16978) completely.
org-font-lock: Fontified drawer(16926:+52) up to +10
org-font-lock: About to fontify 16936..18389
org-font-lock: Fontified plain-list(16936..16972) completely.
org-font-lock: Fontified item(16936..16972) completely.
org-font-lock: Fontified item(16936:+36) up to +2
org-font-lock: About to fontify 16938..18389
org-font-lock: Fontified paragraph(16938..16972) completely.
org-font-lock: Fontified timestamp(16949..16971) completely.
org-font-lock: Fontified paragraph(16938:+34) up to +40
org-font-lock: About to fontify 16978..18389
org-font-lock: Fontified headline(16978..18766) completely.
org-font-lock: Fontified link(17022..17080) completely.
org-font-lock: Fontified headline(16978:+1788) up to +113
org-font-lock: About to fontify 17091..18389
org-font-lock: Fontified section(17091..18766) completely.
org-font-lock: Fontified property-drawer(17091..17143) completely.
org-font-lock: Fontified property-drawer(17091:+52) up to +13
org-font-lock: About to fontify 17104..18389
org-font-lock: Fontified node-property(17104..17137) completely.
org-font-lock: Fontified node-property(17104:+33) up to +39
org-font-lock: About to fontify 17143..18389
org-font-lock: Fontified drawer(17143..17195) completely.
org-font-lock: Fontified drawer(17143:+52) up to +10
org-font-lock: About to fontify 17153..18389
org-font-lock: Fontified plain-list(17153..17189) completely.
org-font-lock: Fontified item(17153..17189) completely.
org-font-lock: Fontified item(17153:+36) up to +2
org-font-lock: About to fontify 17155..18389
org-font-lock: Fontified paragraph(17155..17189) completely.
org-font-lock: Fontified timestamp(17166..17188) completely.
org-font-lock: Fontified paragraph(17155:+34) up to +40
org-font-lock: About to fontify 17195..18389
org-font-lock: Fontified paragraph(17195..18766) completely.
org-font-lock: Fontified bold(17521..17533) completely.
org-font-lock: Fontified bold(17555..17567) completely.
org-font-lock: Fontified paragraph(17195:+1571) up to +1194
org-font-lock: About to fontify 18728..20395
org-font-lock: Fontified paragraph(17195..18766) completely.
org-font-lock: Fontified paragraph(17195:+1571) up to +1571
org-font-lock: About to fontify 18766..20395
org-font-lock: Fontified headline(18766..19067) completely.
org-font-lock: Fontified link(18831..18889) completely.
org-font-lock: Fontified headline(18766:+301) up to +134
org-font-lock: About to fontify 18900..20395
org-font-lock: Fontified section(18900..19067) completely.
org-font-lock: Fontified property-drawer(18900..18952) completely.
org-font-lock: Fontified property-drawer(18900:+52) up to +13
org-font-lock: About to fontify 18913..20395
org-font-lock: Fontified node-property(18913..18946) completely.
org-font-lock: Fontified node-property(18913:+33) up to +39
org-font-lock: About to fontify 18952..20395
org-font-lock: Fontified drawer(18952..19067) completely.
org-font-lock: Fontified drawer(18952:+115) up to +10


The relevant part of the Org file is:

# -*- yant/org-attach-file-symlink-path: "~/TODO/"; -*-
:PROPERTIES:
:ID:       157580d6-61cc-4541-bf5c-46a1dbf25b13
:END:
#+SETUPFILE: /home/yantar92/Org/common.setup
#+OPTIONS: ^:{} H:9 tags:nil
#+LAST_MOBILE_CHANGE: 2017-09-18 15:07:57
* Home :COMMON:NOCLOCK:
:PROPERTIES:
:ID: 2489bdb2-054e-4dc1-97d6-3298c70b742a
:ORG-TIME-BALANCE-MULTIPLIER: 1
:END:

** SOMEDAY Ideas for organisation \ get started with Org mode :COMMON:SKIP:REFILE:AREA:TICKLER:SOMEDAY:
:PROPERTIES:
:ORG-TIME-BALANCE-MULTIPLIER: -0.5
:CATEGORY: GTD-init[D]
:END:
:LOGBOOK:
- Refiled on [2021-03-07 Sun 11:58]
:END:
*** SOMEDAY can as well log music from mpv |- (Memacs/memacs_lastfm.org at master ยท novoid/Memacs) :BOOKMARK:SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 19:17]
:Source: https://github.com/novoid/Memacs/blob/master/docs/memacs_lastfm.org
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
:END:
*** SOMEDAY add a global clock-out key supporting back-bookmarking where I finish :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 19:29]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
CLOCK: [2019-12-23 Mon 19:29]--[2019-12-23 Mon 19:30] =>  0:01
:END:
*** SOMEDAY the thing about keeping all kinds of history is that you don't usually need extra org features there. Once you need to add some info, it's just easier to capture it. Hence, there is not that much point to keep history (not bookmarks) in org files, once external tool can be hooked into search :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 19:54]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
CLOCK: [2019-12-23 Mon 19:54]--[2019-12-23 Mon 19:56] =>  0:02
:END:
*** SOMEDAY DOING actually may as well rescuedule to tomorrow when NEXT->DOING or TODO->DOING :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 20:18]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
CLOCK: [2019-12-23 Mon 20:18]--[2019-12-23 Mon 20:19] =>  0:01
:END:
*** SOMEDAY change clocking to easier key bindings :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 20:22]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
:END:
*** SOMEDAY report Astrill crash on redirect login wifi page :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 20:31]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
:END:
*** SOMEDAY note the filtering workflow :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 21:01]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
:END:
*** SOMEDAY similar to checkbox type todo, it makes sense that links have list syntax ^ - url:desc :: abstract :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 21:19]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
CLOCK: [2019-12-23 Mon 21:19]--[2019-12-23 Mon 21:20] =>  0:01
:END:
*** SOMEDAY org agenda narrow to selected tasks!!! needed to further filter the workflow. Add a y/p prompt when trying to clock-in anything from agenda with more than (3?) items and Organization task active :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 21:21]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
CLOCK: [2019-12-23 Mon 21:21]--[2019-12-23 Mon 21:22] =>  0:01
:END:
*** SOMEDAY on capturing next items, automatically add 5 mins effort. It is basically what I need before deciding if I want to move task to DOING or SOMEDAY. Once decide, effort should be deleted (if still 5 minutes) :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 21:35]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
:END:
*** SOMEDAY processing inbox in the morning is better for me since I have a fresh mind and may think out of context of the task I put the previous day :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 21:37]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
:END:
*** SOMEDAY ask for effort estimate on the first clock-in into non-inbox task :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 21:39]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
:END:
*** SOMEDAY there are several approaches to create optional tasks. Some people just set low priority. Actually, why not? better than an extra todo keyword. :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 21:40]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
CLOCK: [2019-12-23 Mon 21:40]--[2019-12-23 Mon 21:42] =>  0:02
:END:
*** SOMEDAY reviewing the clock weekly does not really achieve the purpose to optimise the workflow. It is more useful in a more strategic context when you decide to tweak the workflow (doing it weekly is a bit ridiculous). A simpler estimate in a form of org-balance is more useful to influence decisions on what to do during each day :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 21:58]
:ID:       3b09ca4b-0feb-44f9-a15a-eade01aa0c00
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
CLOCK: [2019-12-23 Mon 21:58]--[2019-12-23 Mon 22:00] =>  0:02
:END:
*** SOMEDAY do something with org-agenda-time-grid, really. I want calendar like :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 22:31]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
:END:
*** SOMEDAY "Linking to a note. Non-existent notes become new notes." Cool idea! :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 22:44]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
:END:
*** SOMEDAY C-c c in agenda jumps to clocked task in agenda first :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 22:46]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:20]
:END:
*** SOMEDAY url |- (Why root your Android? - exobrain) :BOOKMARK:SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 14:24]
:Source: https://unstable.beepb00p.xyz/exobrain/android/why-root.html
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:26]
:END:
*** SOMEDAY url |- (Forte Labs) :BOOKMARK:SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-23 Mon 22:34]
:Source: https://www.fortelabs.co/
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:27]
:END:
*** SOMEDAY do not clock out on done during capture :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-24 Tue 23:32]
:END:
:LOGBOOK:
- Refiled on [2019-12-24 Tue 23:51]
:END:
*** SOMEDAY add video tag to youtube captures :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-25 Wed 10:01]
:END:
:LOGBOOK:
- Refiled on [2019-12-25 Wed 13:38]
:END:
*** SOMEDAY add someday to GTD overview :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-25 Wed 10:10]
:END:
:LOGBOOK:
- Refiled on [2019-12-25 Wed 13:38]
:END:
*** SOMEDAY show effort estimate (if any) in agenda :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-25 Wed 13:45]
:END:
:LOGBOOK:
- Refiled on [2019-12-26 Thu 13:51]
CLOCK: [2019-12-25 Wed 13:45]--[2019-12-25 Wed 13:46] =>  0:01
:END:
*** SOMEDAY Mickael Guessant [Davmail.Sourceforge] DavMail POP/IMAP/SMTP/Caldav/Carddav/LDAP Exchange Gateway - Frequently asked questions :SOMEDAY:BOOKMARK:misc:
:PROPERTIES:
:CREATED: [2019-12-27 Fri 15:29]
:Source: http://davmail.sourceforge.net/faq.html
:URL:      http://davmail.sourceforge.net/faq.html
:NOTE:     Online; accessed 14 April 2021
:HOWPUBLISHED: Davmail.Sourceforge
:AUTHOR:   Mickael Guessant
:ID:       Davmail.Sourceforge_guessantdavmail_pop_imap_smtp_caldav858
:BTYPE:    misc
:TITLE:    DavMail POP/IMAP/SMTP/Caldav/Carddav/LDAP Exchange Gateway - Frequently asked questions
:END:
:LOGBOOK:
- Refiled on [2019-12-27 Fri 16:00]
CLOCK: [2019-12-27 Fri 15:29]--[2019-12-27 Fri 15:30] =>  0:01
:END:
*** SOMEDAY consider registers for file shortcuts [[id:fe8d7fa0-6782-413e-af17-1039b868617d][Frequently-accessed files]] :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-28 Sat 23:59]
:END:
:LOGBOOK:
- Refiled on [2019-12-29 Sun 23:59]
:END:
https://code.freedombone.net/bashrc/emacs/raw/master/emacs.d/init/init.org
Registers allow you to jump to a file or other location quickly. To
jump to a register, use =C-x r j= followed by the letter of the
register.

#+begin_src emacs-lisp :results silent
  (mapcar
   (lambda (r)
     (set-register (car r) (cons 'file (cdr r))))
   '((?i . "~/.emacs.d/init.org")
     (?o . "~/personal/organiser.org")))
#+end_src
*** SOMEDAY think about org files [[id:d3acdc15-6cb8-4810-a3c6-e9570f481ecc][My files]] :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-28 Sat 23:59]
:END:
:LOGBOOK:
- Refiled on [2019-12-29 Sun 23:59]
CLOCK: [2019-12-29 Sun 00:14]--[2019-12-29 Sun 00:15] =>  0:01
:END:

Here are the Org files I use, which are stored within the =~/personal= directory.

| organiser.org        | My main Org file. Inbox for M-x org-capture, tasks, weekly reviews, etc. |
| business.org         | Business-related notes and TODOs                                         |
| people.org           | People-related tasks                                                     |
| projects.org         | Projects being worked on                                                 |
| [[http://sachachua.com/evil-plans][evil-plans/index.org]] | High-level goals                                                         |
| [[http://sachachua.com/outline][sharing/index.org]]    | Things to write about                                                    |
| decisions.org        | Pending, current, and reviewed decisions                                 |
| [[http://sachachua.com/blog/index][blog.org]]             | Topic index for my blog                                                  |
| [[http://sachachua.com/my-learning][learning.org]]         | Learning plan                                                            |
| outline.org          | Huge outline of notes by category                                        |
| tracking.org         | Temporary Org file for tracking various things                           |
| delegation.org       | Templates for assigning tasks                                            |
| books.org            | Huge file with book notes                                                |
| calendar.org         | Used to use this with ical2org                                           |
| goals.org            | Top level supergoals                                                     |
| archive.org          | Archived subtrees                                                        |
| life.org             | Questions, processes, tools                                              |
*** SOMEDAY think about it [[id:1eb5ce89-c3d0-4b8a-94e1-5d9d048718c3][Enable filtering by effort estimates]] :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-28 Sat 23:59]
:END:
:LOGBOOK:
- Refiled on [2019-12-29 Sun 23:59]
:END:
Enable filtering by effort estimates

That way, it's easy to see short tasks that I can finish.

#+begin_src emacs-lisp
  (add-to-list 'org-global-properties
        '("Effort_ALL". "0:05 0:15 0:30 1:00 2:00 3:00 4:00"))
#+end_src
*** SOMEDAY think about efforts [[id:f23aed3e-96f7-469e-8521-5822663a77c3][Estimating tasks]] :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-28 Sat 23:59]
:END:
:LOGBOOK:
- Refiled on [2019-12-29 Sun 23:59]
:END:
From "Add an effort estimate on the fly when clocking in" on the
[[http://orgmode.org/worg/org-hacks.html][Org Hacks]] page:

#+begin_src emacs-lisp
(add-hook 'org-clock-in-prepare-hook
          'bashrc/org-mode-ask-effort)

(defun bashrc/org-mode-ask-effort ()
  "Ask for an effort estimate when clocking in."
  (unless (org-entry-get (point) "Effort")
    (let ((effort
           (completing-read
            "Effort: "
            (org-entry-get-multivalued-property (point) "Effort"))))
      (unless (equal effort "")
        (org-set-property "Effort" effort)))))
#+end_src
*** SOMEDAY check [[id:446d8f8a-7cf0-4de1-b1f8-842a81b41e23][Flexible scheduling of tasks]] :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-28 Sat 23:59]
:END:
:LOGBOOK:
- Refiled on [2019-12-29 Sun 23:59]
:END:
I (theoretically) want to be able to schedule tasks for dates like the first Saturday
of every month. Fortunately, [[http://stackoverflow.com/questions/13555385/org-mode-how-to-schedule-repeating-tasks-for-the-first-saturday-of-every-month][someone else has figured that out!]]

#+begin_src emacs-lisp
;; Get this from https://raw.github.com/chenfengyuan/elisp/master/next-spec-day.el
(load "~/elisp/next-spec-day.el" t)
#+end_src
*** SOMEDAY check [[id:7210309c-69b3-4465-ae12-f9fbb1625ae2][Viewing, navigating, and editing the Org tree]] :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-28 Sat 23:59]
:END:
:LOGBOOK:
- Refiled on [2019-12-29 Sun 23:59]
:END:
https://code.freedombone.net/bashrc/emacs/raw/master/emacs.d/init/init.org

I often cut and paste subtrees. This makes it easier to cut
something and paste it elsewhere in the hierarchy.

#+begin_src emacs-lisp
      (eval-after-load 'org
        '(progn
           (bind-key "C-c k" 'org-cut-subtree org-mode-map)
           (setq org-yank-adjusted-subtrees t)))
#+end_src
*** SOMEDAY add easy way to remove condition in meta-functions :SOMEDAY:
:PROPERTIES:
:CREATED: [2019-12-29 Sun 15:02]
:END:
:LOGBOOK:
- Refiled on [2019-12-29 Sun 23:59]
CLOCK: [2019-12-29 Sun 15:02]--[2019-12-29 Sun 15:03] =>  0:01
:END:



In GNU Emacs 28.1.90 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.34, cairo version 1.16.0)
 of 2022-07-17 built on localhost
Repository revision: f5218385c064aa959650bfe49ca32795270851eb
Repository branch: emacs-28
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: Gentoo Linux

Configured using:
 'configure --prefix=/usr --build=x86_64-pc-linux-gnu
 --host=x86_64-pc-linux-gnu --mandir=/usr/share/man
 --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc
 --localstatedir=/var/lib --datarootdir=/usr/share
 --disable-silent-rules --docdir=/usr/share/doc/emacs-28.1.9999
 --htmldir=/usr/share/doc/emacs-28.1.9999/html --libdir=/usr/lib64
 --program-suffix=-emacs-28-vcs --includedir=/usr/include/emacs-28-vcs
 --infodir=/usr/share/info/emacs-28-vcs --localstatedir=/var
 --enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp
 --without-compress-install --without-hesiod --without-pop
 --with-file-notification=inotify --with-pdumper --enable-acl
 --with-dbus --with-modules --without-gameuser --with-libgmp --with-gpm
 --with-native-compilation --with-json --without-kerberos
 --without-kerberos5 --with-lcms2 --with-xml2 --without-mailutils
 --without-selinux --with-gnutls --without-libsystemd --with-threads
 --with-wide-int --with-zlib --with-sound=alsa --with-x --without-ns
 --without-gconf --without-gsettings --without-toolkit-scroll-bars
 --with-gif --with-jpeg --with-png --with-rsvg --with-tiff --with-xpm
 --with-imagemagick --with-xft --with-cairo --with-harfbuzz
 --without-libotf --without-m17n-flt --with-x-toolkit=gtk3
 --with-xwidgets --with-dumping=pdumper 'CFLAGS=-march=native -O3 -pipe'
 'LDFLAGS=-Wl,-O1 -Wl,--as-needed''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM HARFBUZZ IMAGEMAGICK
JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG
RSVG SECCOMP SOUND THREADS TIFF X11 XDBE XIM XPM XWIDGETS GTK3 ZLIB

Important settings:
  value of $LC_COLLATE: C
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  pyvenv-mode: t
  git-email-notmuch-mode: t
  git-email-piem-mode: t
  piem-notmuch-mode: t
  org-edna-mode: t
  eros-mode: t
  pdf-occur-global-minor-mode: t
  paredit-mode: t
  which-key-mode: t
  aggressive-indent-mode: t
  diredfl-global-mode: t
  winner-mode: t
  eval-sexp-fu-flash-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  el-patch-use-package-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  recentf-mode: t
  hl-todo-mode: t
  pretty-symbols-mode: t
  company-mode: t
  persistent-scratch-autosave-mode: t
  savehist-mode: t
  helm-adaptive-mode: t
  helm-mode: t
  helm-minibuffer-history-mode: t
  helm-ff-icon-mode: t
  shell-dirtrack-mode: t
  helm--remap-mouse-mode: t
  async-bytecomp-package-mode: t
  boon-mode: t
  boon-local-mode: t
  global-hl-line-mode: t
  global-page-break-lines-mode: t
  page-break-lines-mode: t
  shackle-mode: t
  override-global-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  prettify-symbols-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  window-divider-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Load-path shadows:
/usr/share/emacs/site-lisp/cmake-mode hides /usr/share/emacs/site-lisp/cmake/cmake-mode
/home/yantar92/.emacs.d/straight/build/dash/dash hides /usr/share/emacs/site-lisp/dash/dash
/usr/share/emacs/site-lisp/desktop-entry-mode hides /usr/share/emacs/site-lisp/desktop-file-utils/desktop-entry-mode
/home/yantar92/.emacs.d/straight/build/f/f hides /usr/share/emacs/site-lisp/f/f
/home/yantar92/.emacs.d/straight/build/s/s hides /usr/share/emacs/site-lisp/s/s
/home/yantar92/.emacs.d/straight/build/with-editor/with-editor hides /usr/share/emacs/site-lisp/with-editor/with-editor
/home/yantar92/.emacs.d/straight/build/transient/transient hides /usr/share/emacs/28.1.90/lisp/transient
/home/yantar92/.emacs.d/straight/build/project/project hides /usr/share/emacs/28.1.90/lisp/progmodes/project
/home/yantar92/.emacs.d/straight/build/xref/xref hides /usr/share/emacs/28.1.90/lisp/progmodes/xref
/home/yantar92/.emacs.d/straight/build/org/ob-C hides /usr/share/emacs/28.1.90/lisp/org/ob-C
/home/yantar92/.emacs.d/straight/build/org/ob-R hides /usr/share/emacs/28.1.90/lisp/org/ob-R
/home/yantar92/.emacs.d/straight/build/org/ob-awk hides /usr/share/emacs/28.1.90/lisp/org/ob-awk
/home/yantar92/.emacs.d/straight/build/org/ob-calc hides /usr/share/emacs/28.1.90/lisp/org/ob-calc
/home/yantar92/.emacs.d/straight/build/org/ob-clojure hides /usr/share/emacs/28.1.90/lisp/org/ob-clojure
/home/yantar92/.emacs.d/straight/build/org/ob-comint hides /usr/share/emacs/28.1.90/lisp/org/ob-comint
/home/yantar92/.emacs.d/straight/build/org/ob-core hides /usr/share/emacs/28.1.90/lisp/org/ob-core
/home/yantar92/.emacs.d/straight/build/org/ob-css hides /usr/share/emacs/28.1.90/lisp/org/ob-css
/home/yantar92/.emacs.d/straight/build/org/ob-ditaa hides /usr/share/emacs/28.1.90/lisp/org/ob-ditaa
/home/yantar92/.emacs.d/straight/build/org/ob-dot hides /usr/share/emacs/28.1.90/lisp/org/ob-dot
/home/yantar92/.emacs.d/straight/build/org/ob-emacs-lisp hides /usr/share/emacs/28.1.90/lisp/org/ob-emacs-lisp
/home/yantar92/.emacs.d/straight/build/org/ob-eshell hides /usr/share/emacs/28.1.90/lisp/org/ob-eshell
/home/yantar92/.emacs.d/straight/build/org/ob-eval hides /usr/share/emacs/28.1.90/lisp/org/ob-eval
/home/yantar92/.emacs.d/straight/build/org/ob-exp hides /usr/share/emacs/28.1.90/lisp/org/ob-exp
/home/yantar92/.emacs.d/straight/build/org/ob-forth hides /usr/share/emacs/28.1.90/lisp/org/ob-forth
/home/yantar92/.emacs.d/straight/build/org/ob-fortran hides /usr/share/emacs/28.1.90/lisp/org/ob-fortran
/home/yantar92/.emacs.d/straight/build/org/ob-gnuplot hides /usr/share/emacs/28.1.90/lisp/org/ob-gnuplot
/home/yantar92/.emacs.d/straight/build/org/ob-groovy hides /usr/share/emacs/28.1.90/lisp/org/ob-groovy
/home/yantar92/.emacs.d/straight/build/org/ob-haskell hides /usr/share/emacs/28.1.90/lisp/org/ob-haskell
/home/yantar92/.emacs.d/straight/build/org/ob-java hides /usr/share/emacs/28.1.90/lisp/org/ob-java
/home/yantar92/.emacs.d/straight/build/org/ob-js hides /usr/share/emacs/28.1.90/lisp/org/ob-js
/home/yantar92/.emacs.d/straight/build/org/ob-julia hides /usr/share/emacs/28.1.90/lisp/org/ob-julia
/home/yantar92/.emacs.d/straight/build/org/ob-latex hides /usr/share/emacs/28.1.90/lisp/org/ob-latex
/home/yantar92/.emacs.d/straight/build/org/ob-lilypond hides /usr/share/emacs/28.1.90/lisp/org/ob-lilypond
/home/yantar92/.emacs.d/straight/build/org/ob-lisp hides /usr/share/emacs/28.1.90/lisp/org/ob-lisp
/home/yantar92/.emacs.d/straight/build/org/ob-lob hides /usr/share/emacs/28.1.90/lisp/org/ob-lob
/home/yantar92/.emacs.d/straight/build/org/ob-lua hides /usr/share/emacs/28.1.90/lisp/org/ob-lua
/home/yantar92/.emacs.d/straight/build/org/ob-makefile hides /usr/share/emacs/28.1.90/lisp/org/ob-makefile
/home/yantar92/.emacs.d/straight/build/org/ob-matlab hides /usr/share/emacs/28.1.90/lisp/org/ob-matlab
/home/yantar92/.emacs.d/straight/build/org/ob-maxima hides /usr/share/emacs/28.1.90/lisp/org/ob-maxima
/home/yantar92/.emacs.d/straight/build/org/ob-ocaml hides /usr/share/emacs/28.1.90/lisp/org/ob-ocaml
/home/yantar92/.emacs.d/straight/build/org/ob-octave hides /usr/share/emacs/28.1.90/lisp/org/ob-octave
/home/yantar92/.emacs.d/straight/build/org/ob-org hides /usr/share/emacs/28.1.90/lisp/org/ob-org
/home/yantar92/.emacs.d/straight/build/org/ob-perl hides /usr/share/emacs/28.1.90/lisp/org/ob-perl
/home/yantar92/.emacs.d/straight/build/org/ob-plantuml hides /usr/share/emacs/28.1.90/lisp/org/ob-plantuml
/home/yantar92/.emacs.d/straight/build/org/ob-processing hides /usr/share/emacs/28.1.90/lisp/org/ob-processing
/home/yantar92/.emacs.d/straight/build/org/ob-python hides /usr/share/emacs/28.1.90/lisp/org/ob-python
/home/yantar92/.emacs.d/straight/build/org/ob-ref hides /usr/share/emacs/28.1.90/lisp/org/ob-ref
/home/yantar92/.emacs.d/straight/build/org/ob-ruby hides /usr/share/emacs/28.1.90/lisp/org/ob-ruby
/home/yantar92/.emacs.d/straight/build/org/ob-sass hides /usr/share/emacs/28.1.90/lisp/org/ob-sass
/home/yantar92/.emacs.d/straight/build/org/ob-scheme hides /usr/share/emacs/28.1.90/lisp/org/ob-scheme
/home/yantar92/.emacs.d/straight/build/org/ob-screen hides /usr/share/emacs/28.1.90/lisp/org/ob-screen
/home/yantar92/.emacs.d/straight/build/org/ob-sed hides /usr/share/emacs/28.1.90/lisp/org/ob-sed
/home/yantar92/.emacs.d/straight/build/org/ob-shell hides /usr/share/emacs/28.1.90/lisp/org/ob-shell
/home/yantar92/.emacs.d/straight/build/org/ob-sql hides /usr/share/emacs/28.1.90/lisp/org/ob-sql
/home/yantar92/.emacs.d/straight/build/org/ob-sqlite hides /usr/share/emacs/28.1.90/lisp/org/ob-sqlite
/home/yantar92/.emacs.d/straight/build/org/ob-table hides /usr/share/emacs/28.1.90/lisp/org/ob-table
/home/yantar92/.emacs.d/straight/build/org/ob-tangle hides /usr/share/emacs/28.1.90/lisp/org/ob-tangle
/home/yantar92/.emacs.d/straight/build/org/ob hides /usr/share/emacs/28.1.90/lisp/org/ob
/home/yantar92/.emacs.d/straight/build/org/oc-basic hides /usr/share/emacs/28.1.90/lisp/org/oc-basic
/home/yantar92/.emacs.d/straight/build/org/oc-biblatex hides /usr/share/emacs/28.1.90/lisp/org/oc-biblatex
/home/yantar92/.emacs.d/straight/build/org/oc-csl hides /usr/share/emacs/28.1.90/lisp/org/oc-csl
/home/yantar92/.emacs.d/straight/build/org/oc-natbib hides /usr/share/emacs/28.1.90/lisp/org/oc-natbib
/home/yantar92/.emacs.d/straight/build/org/oc hides /usr/share/emacs/28.1.90/lisp/org/oc
/home/yantar92/.emacs.d/straight/build/org/ol-bbdb hides /usr/share/emacs/28.1.90/lisp/org/ol-bbdb
/home/yantar92/.emacs.d/straight/build/org/ol-bibtex hides /usr/share/emacs/28.1.90/lisp/org/ol-bibtex
/home/yantar92/.emacs.d/straight/build/org/ol-docview hides /usr/share/emacs/28.1.90/lisp/org/ol-docview
/home/yantar92/.emacs.d/straight/build/org/ol-doi hides /usr/share/emacs/28.1.90/lisp/org/ol-doi
/home/yantar92/.emacs.d/straight/build/org/ol-eshell hides /usr/share/emacs/28.1.90/lisp/org/ol-eshell
/home/yantar92/.emacs.d/straight/build/org/ol-eww hides /usr/share/emacs/28.1.90/lisp/org/ol-eww
/home/yantar92/.emacs.d/straight/build/org/ol-gnus hides /usr/share/emacs/28.1.90/lisp/org/ol-gnus
/home/yantar92/.emacs.d/straight/build/org/ol-info hides /usr/share/emacs/28.1.90/lisp/org/ol-info
/home/yantar92/.emacs.d/straight/build/org/ol-irc hides /usr/share/emacs/28.1.90/lisp/org/ol-irc
/home/yantar92/.emacs.d/straight/build/org/ol-man hides /usr/share/emacs/28.1.90/lisp/org/ol-man
/home/yantar92/.emacs.d/straight/build/org/ol-mhe hides /usr/share/emacs/28.1.90/lisp/org/ol-mhe
/home/yantar92/.emacs.d/straight/build/org/ol-rmail hides /usr/share/emacs/28.1.90/lisp/org/ol-rmail
/home/yantar92/.emacs.d/straight/build/org/ol-w3m hides /usr/share/emacs/28.1.90/lisp/org/ol-w3m
/home/yantar92/.emacs.d/straight/build/org/ol hides /usr/share/emacs/28.1.90/lisp/org/ol
/home/yantar92/.emacs.d/straight/build/org/org-agenda hides /usr/share/emacs/28.1.90/lisp/org/org-agenda
/home/yantar92/.emacs.d/straight/build/org/org-archive hides /usr/share/emacs/28.1.90/lisp/org/org-archive
/home/yantar92/.emacs.d/straight/build/org/org-attach-git hides /usr/share/emacs/28.1.90/lisp/org/org-attach-git
/home/yantar92/.emacs.d/straight/build/org/org-attach hides /usr/share/emacs/28.1.90/lisp/org/org-attach
/home/yantar92/.emacs.d/straight/build/org/org-capture hides /usr/share/emacs/28.1.90/lisp/org/org-capture
/home/yantar92/.emacs.d/straight/build/org/org-clock hides /usr/share/emacs/28.1.90/lisp/org/org-clock
/home/yantar92/.emacs.d/straight/build/org/org-colview hides /usr/share/emacs/28.1.90/lisp/org/org-colview
/home/yantar92/.emacs.d/straight/build/org/org-compat hides /usr/share/emacs/28.1.90/lisp/org/org-compat
/home/yantar92/.emacs.d/straight/build/org/org-crypt hides /usr/share/emacs/28.1.90/lisp/org/org-crypt
/home/yantar92/.emacs.d/straight/build/org/org-ctags hides /usr/share/emacs/28.1.90/lisp/org/org-ctags
/home/yantar92/.emacs.d/straight/build/org/org-datetree hides /usr/share/emacs/28.1.90/lisp/org/org-datetree
/home/yantar92/.emacs.d/straight/build/org/org-duration hides /usr/share/emacs/28.1.90/lisp/org/org-duration
/home/yantar92/.emacs.d/straight/build/org/org-element hides /usr/share/emacs/28.1.90/lisp/org/org-element
/home/yantar92/.emacs.d/straight/build/org/org-entities hides /usr/share/emacs/28.1.90/lisp/org/org-entities
/home/yantar92/.emacs.d/straight/build/org/org-faces hides /usr/share/emacs/28.1.90/lisp/org/org-faces
/home/yantar92/.emacs.d/straight/build/org/org-feed hides /usr/share/emacs/28.1.90/lisp/org/org-feed
/home/yantar92/.emacs.d/straight/build/org/org-footnote hides /usr/share/emacs/28.1.90/lisp/org/org-footnote
/home/yantar92/.emacs.d/straight/build/org/org-goto hides /usr/share/emacs/28.1.90/lisp/org/org-goto
/home/yantar92/.emacs.d/straight/build/org/org-habit hides /usr/share/emacs/28.1.90/lisp/org/org-habit
/home/yantar92/.emacs.d/straight/build/org/org-id hides /usr/share/emacs/28.1.90/lisp/org/org-id
/home/yantar92/.emacs.d/straight/build/org/org-indent hides /usr/share/emacs/28.1.90/lisp/org/org-indent
/home/yantar92/.emacs.d/straight/build/org/org-inlinetask hides /usr/share/emacs/28.1.90/lisp/org/org-inlinetask
/home/yantar92/.emacs.d/straight/build/org/org-keys hides /usr/share/emacs/28.1.90/lisp/org/org-keys
/home/yantar92/.emacs.d/straight/build/org/org-lint hides /usr/share/emacs/28.1.90/lisp/org/org-lint
/home/yantar92/.emacs.d/straight/build/org/org-list hides /usr/share/emacs/28.1.90/lisp/org/org-list
/home/yantar92/.emacs.d/straight/build/org/org-macro hides /usr/share/emacs/28.1.90/lisp/org/org-macro
/home/yantar92/.emacs.d/straight/build/org/org-macs hides /usr/share/emacs/28.1.90/lisp/org/org-macs
/home/yantar92/.emacs.d/straight/build/org/org-mobile hides /usr/share/emacs/28.1.90/lisp/org/org-mobile
/home/yantar92/.emacs.d/straight/build/org/org-mouse hides /usr/share/emacs/28.1.90/lisp/org/org-mouse
/home/yantar92/.emacs.d/straight/build/org/org-num hides /usr/share/emacs/28.1.90/lisp/org/org-num
/home/yantar92/.emacs.d/straight/build/org/org-pcomplete hides /usr/share/emacs/28.1.90/lisp/org/org-pcomplete
/home/yantar92/.emacs.d/straight/build/org/org-plot hides /usr/share/emacs/28.1.90/lisp/org/org-plot
/home/yantar92/.emacs.d/straight/build/org/org-protocol hides /usr/share/emacs/28.1.90/lisp/org/org-protocol
/home/yantar92/.emacs.d/straight/build/org/org-refile hides /usr/share/emacs/28.1.90/lisp/org/org-refile
/home/yantar92/.emacs.d/straight/build/org/org-src hides /usr/share/emacs/28.1.90/lisp/org/org-src
/home/yantar92/.emacs.d/straight/build/org/org-table hides /usr/share/emacs/28.1.90/lisp/org/org-table
/home/yantar92/.emacs.d/straight/build/org/org-tempo hides /usr/share/emacs/28.1.90/lisp/org/org-tempo
/home/yantar92/.emacs.d/straight/build/org/org-timer hides /usr/share/emacs/28.1.90/lisp/org/org-timer
/home/yantar92/.emacs.d/straight/build/org/org-version hides /usr/share/emacs/28.1.90/lisp/org/org-version
/home/yantar92/.emacs.d/straight/build/org/org hides /usr/share/emacs/28.1.90/lisp/org/org
/home/yantar92/.emacs.d/straight/build/org/ox-ascii hides /usr/share/emacs/28.1.90/lisp/org/ox-ascii
/home/yantar92/.emacs.d/straight/build/org/ox-beamer hides /usr/share/emacs/28.1.90/lisp/org/ox-beamer
/home/yantar92/.emacs.d/straight/build/org/ox-html hides /usr/share/emacs/28.1.90/lisp/org/ox-html
/home/yantar92/.emacs.d/straight/build/org/ox-icalendar hides /usr/share/emacs/28.1.90/lisp/org/ox-icalendar
/home/yantar92/.emacs.d/straight/build/org/ox-koma-letter hides /usr/share/emacs/28.1.90/lisp/org/ox-koma-letter
/home/yantar92/.emacs.d/straight/build/org/ox-latex hides /usr/share/emacs/28.1.90/lisp/org/ox-latex
/home/yantar92/.emacs.d/straight/build/org/ox-man hides /usr/share/emacs/28.1.90/lisp/org/ox-man
/home/yantar92/.emacs.d/straight/build/org/ox-md hides /usr/share/emacs/28.1.90/lisp/org/ox-md
/home/yantar92/.emacs.d/straight/build/org/ox-odt hides /usr/share/emacs/28.1.90/lisp/org/ox-odt
/home/yantar92/.emacs.d/straight/build/org/ox-org hides /usr/share/emacs/28.1.90/lisp/org/ox-org
/home/yantar92/.emacs.d/straight/build/org/ox-publish hides /usr/share/emacs/28.1.90/lisp/org/ox-publish
/home/yantar92/.emacs.d/straight/build/org/ox-texinfo hides /usr/share/emacs/28.1.90/lisp/org/ox-texinfo
/home/yantar92/.emacs.d/straight/build/org/ox hides /usr/share/emacs/28.1.90/lisp/org/ox
/home/yantar92/.emacs.d/straight/build/org/org-loaddefs hides /usr/share/emacs/28.1.90/lisp/org/org-loaddefs
/home/yantar92/.emacs.d/straight/build/let-alist/let-alist hides /usr/share/emacs/28.1.90/lisp/emacs-lisp/let-alist
/home/yantar92/.emacs.d/straight/build/map/map hides /usr/share/emacs/28.1.90/lisp/emacs-lisp/map

Features:
(shadow footnote emacsbug sendmail misearch multi-isearch cl-print
mule-util helm-command helm-elisp helm-eval boon-moves
er-basic-expansions expand-region-core expand-region-custom calccomp
calc-alg calc-lang latexenc calc-menu tramp-archive tramp-gvfs boon-main
boon-hl boon-arguments multiple-cursors mc-separate-operations
rectangular-region-mode mc-mark-pop mc-edit-lines
mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors
multiple-cursors-core boon-regs boon-utils org-table-sticky-header
oc-basic ffap highlight-indentation flymake-proc flymake elpy elpy-rpc
pyvenv eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module
esh-groups esh-util elpy-shell elpy-profile elpy-django elpy-refactor
grep git-email-magit magit-patch git-email-notmuch git-email-piem
git-email git-email-autoloads project-autoloads xref-autoloads
piem-notmuch piem piem-maildir mail-extr piem-autoloads org-crypt
helm-notmuch helm-notmuch-autoloads ol-notmuch ol-notmuch-autoloads
org-eldoc org-table-sticky-header-autoloads posframe posframe-autoloads
ob-async ob-async-autoloads ob-latex ob-dot ob-calc calc-store
calc-trail ob-gnuplot ob-ditaa ob-C cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ob-python ob-perl
ob-org ob-shell org-tempo tempo org-archive ox-md ox-beamer
engrave-faces engrave-faces-autoloads ox-extra orgdiff orgdiff-autoloads
doct ya-org-capture ya-org-capture-autoloads doct-autoloads
org-capture-pop-frame org-capture-pop-frame-autoloads org-protocol
org-analyzer-autoloads pomidor-autoloads alert-autoloads log4e-autoloads
gntp-autoloads helm-org-ql helm-org org-clock org-autosort
org-autosort-autoloads helm-org-contacts helm-org-contacts-autoloads
org-contacts gnus-art mm-uu mml2015 gnus-sum gnus-group gnus-undo
gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 netrc
nnoo gnus-spec gnus-int gnus-range gnus-win gnus nnheader
org-contacts-autoloads helm-org-ql-autoloads helm-org-autoloads
org-ql-search org-ql-view ov org-super-agenda org-ql peg ts
org-ql-autoloads peg-autoloads ov-autoloads org-super-agenda-autoloads
ts-autoloads org-quick-peek org-quick-peek-autoloads calfw-org
calfw-org-autoloads calfw holidays hol-loaddefs calfw-autoloads
org-attach cdlatex reftex reftex-loaddefs reftex-vars texmathp
cdlatex-autoloads org-capture-ref org-ref-url-utils org-ref org-ref-core
org-ref-glossary org-ref-bibtex avy doi-utils org-ref-utils
org-ref-export citeproc citeproc-itemgetters citeproc-biblatex
citeproc-bibtex ol-bibtex citeproc-cite citeproc-subbibs citeproc-sort
citeproc-name citeproc-formatters citeproc-number rst citeproc-proc
citeproc-disamb citeproc-itemdata citeproc-generic-elements
citeproc-macro citeproc-choose citeproc-date citeproc-context
citeproc-prange citeproc-style citeproc-locale citeproc-term citeproc-rt
citeproc-lib citeproc-s queue ox-pandoc ox-org ox-odt rng-loc rng-uri
rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns
nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii
ox-publish ox org-ref-misc-links org-ref-label-link org-ref-ref-links
org-ref-citation-links org-ref-bibliography-links bibtex-completion
biblio biblio-download biblio-dissemin biblio-ieee biblio-hal
biblio-dblp biblio-crossref biblio-arxiv timezone biblio-doi biblio-core
ido parsebib bibtex org-ref-autoloads ox-pandoc-autoloads
citeproc-autoloads string-inflection-autoloads queue-autoloads
bibtex-completion-autoloads biblio-autoloads biblio-core-autoloads
parsebib-autoloads htmlize-autoloads scimax-inkscape
scimax-inkscape-autoloads org-pdftools pdf-annot facemenu org-noter
org-pdftools-autoloads org-noter-autoloads org-capture org-checklist
org-habit org-edna org-edna-autoloads org-inlinetask org-drill persist
org-agenda org-drill-autoloads persist-autoloads ol-info ol-w3m ol-doi
org-link-doi speed-type speed-type-autoloads ement ement-notify
ement-room ewoc ement-lib ement-api ement-structs ement-macros dns
ement-autoloads svg-lib-autoloads taxy-magit-section-autoloads
taxy-autoloads map-autoloads plz plz-autoloads 0x0 0x0-autoloads
notmuch-calendar-x notmuch-calendar-x-autoloads notmuch notmuch-tree
notmuch-jump notmuch-hello notmuch-show notmuch-print notmuch-crypto
notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc
notmuch-address notmuch-company notmuch-parser notmuch-wash coolj
notmuch-query goto-addr icalendar diary-lib diary-loaddefs notmuch-tag
notmuch-lib notmuch-version notmuch-compat mm-view mml-smime smime dig
w3m-autoloads elfeed-score elfeed-score-maint elfeed-score-scoring
elfeed-score-serde elfeed-score-rule-stats elfeed-org org-element
org-persist elfeed-org-autoloads quick-peek quick-peek-autoloads
elfeed-show elfeed-search hideshow display-fill-column-indicator eros
rainbow-delimiters highlight-numbers parent-mode easy-escape
license-snippets yasnippet-snippets-autoloads yasnippet-snippets
yasnippet elfeed-csv elfeed elfeed-curl elfeed-log elfeed-db elfeed-lib
avl-tree url-queue xml-query elfeed-score-rules elfeed-score-log
elfeed-score-autoloads elfeed-autoloads ytel-show-autoloads ytel
ytel-autoloads qrencode-el-autoloads tb-keycast tb-keycast-autoloads
gif-screencast xdg gif-screencast-autoloads yaml-mode
yaml-mode-autoloads mingus libmpdee cl mingus-autoloads
libmpdee-autoloads calctex calc-sel calctex-autoloads
shell-pop-autoloads eterm-256color-autoloads xterm-color-autoloads vterm
term ehelp vterm-module term/xterm xterm vterm-autoloads diffpdf
diffpdf-autoloads pdf-view-restore pdf-view-restore-autoloads pdf-occur
ibuf-ext ibuffer ibuffer-loaddefs tablist tablist-filter
semantic/wisent/comp semantic/wisent semantic/wisent/wisent
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw mode-local cedet pdf-isearch pdf-misc pdf-tools cus-edit
cus-load pdf-roll pdf-view jka-compr pdf-cache pdf-info tq pdf-util
pdf-macs pdf-tools-autoloads tablist-autoloads image-roll
image-roll-autoloads wolfram-mode wolfram-mode-autoloads
ledger-mode-autoloads auctex-autoloads tex-site ebuild-mode skeleton
sh-script smie executable ebuild-mode-autoloads lua-mode
lua-mode-autoloads gnuplot-autoloads eros-autoloads nameless lisp-mnt
nameless-autoloads paredit paredit-autoloads company-jedi
company-jedi-autoloads jedi jedi-core python-environment epc ctable
concurrent auto-complete jedi-autoloads auto-complete-autoloads
jedi-core-autoloads python-environment-autoloads epc-autoloads
ctable-autoloads concurrent-autoloads elpy-autoloads pyvenv-autoloads
highlight-indentation-autoloads python tramp-sh helm-info which-key
which-key-autoloads helm-descbinds helm-descbinds-autoloads elisp-demos
elisp-demos-autoloads helpful edebug info-look help-fns radix-tree
elisp-refs helpful-autoloads elisp-refs-autoloads tldr tldr-autoloads
lsp-ui-autoloads lsp-mode-autoloads spinner-autoloads macrostep
macrostep-autoloads highlight-refontification
highlight-refontification-autoloads font-lock-profiler
font-lock-profiler-autoloads font-lock-studio font-lock-studio-autoloads
memory-usage memory-usage-autoloads bug-hunter bug-hunter-autoloads
lorem-ipsum lorem-ipsum-autoloads debug backtrace
license-snippets-autoloads yasnippet-autoloads move-text
move-text-autoloads aggressive-indent aggressive-indent-autoloads
visual-regexp-autoloads magit-bookmark bookmark pp helm-bm
helm-bm-autoloads bm bm-autoloads helm-dash dash-docs
helm-dash-autoloads dash-docs-autoloads disk-usage disk-usage-autoloads
dired-git-info-autoloads dired-hide-dotfiles-autoloads
dired-filter-autoloads diredfl diredfl-autoloads
all-the-icons-dired-autoloads dired-async dired-open-autoloads
dired-avfs dired-avfs-autoloads dired-narrow-autoloads dired-hacks-utils
dired-hacks-utils-autoloads dired+ image-file image-converter dired-x
dired-aux dired+-autoloads winner windower emacs-windower-autoloads
goggles pulse skip-buffers-mode avy-autoloads eval-sexp-fu
eval-sexp-fu-autoloads goggles-autoloads easy-escape-autoloads
highlight-numbers-autoloads parent-mode-autoloads
rainbow-delimiters-autoloads highlight-parentheses
highlight-parentheses-autoloads flycheck-tip error-tip notifications
dbus popup flycheck-tip-autoloads flycheck flycheck-autoloads
pkg-info-autoloads epl-autoloads wordnut wordnut-history wordnut-u
wordnut-autoloads smog smog-autoloads writegood-mode
writegood-mode-autoloads langtool-ignore-fonts
langtool-ignore-fonts-autoloads langtool compile langtool-autoloads
el-patch-autoloads el-patch el-patch-stub flyspell ispell hi-lock ediff
ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init
ediff-util browse-at-remote vc-git vc-dispatcher f f-shortdoc shortdoc
browse-at-remote-autoloads f-autoloads code-review code-review-actions
code-review-comment code-review-section code-review-bitbucket
code-review-faces shr kinsoku svg xml dom emojify apropos tar-mode
arc-mode archive-mode ht code-review-gitlab code-review-utils
code-review-parse-hunk code-review-github code-review-db uuidgen
calc-misc calc-ext calc calc-loaddefs rect calc-macs a
code-review-interfaces deferred forge-list forge-commands forge-semi
forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab
forge-github ghub-graphql treepy gsexp ghub let-alist gnutls
forge-notify forge-revnote forge-pullreq forge-issue forge-topic yaml
bug-reference forge-post markdown-mode thingatpt forge-repo forge
forge-core forge-db closql emacsql-sqlite emacsql emacsql-compiler
url-http url-auth url-gw nsm magit-submodule magit-obsolete magit-blame
magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch
magit-clone magit-remote magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset
magit-files magit-refs magit-status magit package browse-url
url-handlers magit-repos magit-apply magit-wip magit-log which-func
imenu magit-diff smerge-mode diff diff-mode git-commit log-edit message
rmc puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util
rmail rmail-loaddefs text-property-search mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr
mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core
magit-autorevert magit-margin magit-transient magit-process with-editor
magit-mode transient magit-git magit-base magit-section crm compat-27
compat-26 code-review-autoloads emojify-autoloads ht-autoloads
deferred-autoloads uuidgen-autoloads a-autoloads forge-autoloads
yaml-autoloads markdown-mode-autoloads ghub-autoloads treepy-autoloads
let-alist-autoloads emacsql-sqlite-autoloads emacsql-autoloads
closql-autoloads magit-autoloads magit-section-autoloads
git-commit-autoloads with-editor-autoloads transient-autoloads
autorevert recentf tree-widget wid-edit disp-table hl-todo
pretty-symbols company-oddmuse company-keywords company-etags etags
fileloop generator xref project company-gtags company-dabbrev-code
company-dabbrev company-files company-clang company-capf company-cmake
company-semantic company-template company-bbdb company
persistent-scratch persistent-scratch-autoloads savehist
backup-walker-autoloads company-autoloads helm-adaptive helm-mode
helm-misc helm-files image-dired image-mode dired dired-loaddefs exif
filenotify tramp tramp-loaddefs trampver tramp-integration files-x
tramp-compat shell parse-time iso8601 ls-lisp helm-buffers helm-occur
helm-tags helm-locate helm-grep helm-regexp helm-utils helm-help
helm-types helm helm-global-bindings helm-easymenu helm-core
async-bytecomp helm-source helm-multi-match helm-lib helm-autoloads
popup-autoloads helm-core-autoloads face-remap pyim pyim-cloudim url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf mailcap pyim-probe pyim-preview pyim-page pyim-indicator
pyim-dregcache pyim-dhashcache sort pyim-dict async pyim-autoselector
pyim-process pyim-punctuation pyim-outcome pyim-candidates pyim-cstring
pyim-cregexp xr pyim-codes pyim-imobjs pyim-pinyin pyim-entered
pyim-dcache url-util url-parse auth-source eieio eieio-core
eieio-loaddefs password-cache json map url-vars pyim-pymap pyim-scheme
pyim-common pyim-autoloads xr-autoloads async-autoloads reverse-im quail
reverse-im-autoloads hydra lv boon-qwerty color olivetti straight-x boon
boon-keys boon-core boon-loaddefs boon-autoloads
multiple-cursors-autoloads expand-region-autoloads meta-functions org-id
org-refile dash meta-functions-autoloads dash-autoloads hl-line memoize
memoize-autoloads info-colors info-colors-autoloads hl-todo-autoloads
latex-pretty-symbols latex-pretty-symbols-autoloads
pretty-symbols-autoloads page-break-lines page-break-lines-autoloads
edmacro kmacro adaptive-wrap adaptive-wrap-autoloads olivetti-autoloads
shackle trace shackle-autoloads use-package-diminish all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons all-the-icons-autoloads org
ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote
org-src ob-comint org-pcomplete pcomplete comint ansi-color ring
org-list org-entities time-date noutline outline org-version
ob-emacs-lisp ob-core ob-eval org-cycle org-font-lock org-font-lock-core
org-element-match org-faces org-table ol org-fold org-fold-core org-keys
comp comp-cstr warnings rx oc org-compat advice org-font-lock-obsolete
org-macs org-loaddefs format-spec find-func cal-menu calendar
cal-loaddefs modus-operandi-theme modus-themes modus-themes-autoloads s
s-autoloads pcase asoc asoc.el-autoloads no-littering compat
no-littering-autoloads compat-autoloads hydra-autoloads lv-autoloads
finder-inf use-package-bind-key org-contrib-autoloads bind-key
easy-mmode diminish diminish-autoloads use-package-core
use-package-autoloads info bind-key-autoloads straight-autoloads cl-seq
cl-extra help-mode seq byte-opt straight subr-x cl-macs gv cl-loaddefs
cl-lib bytecomp byte-compile cconv server site-gentoo iso-transl tooltip
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax
font-core term/tty-colors frame minibuffer cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads
xwidget-internal dbusbind inotify lcms2 dynamic-setting
font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 11876385 1702982)
 (symbols 48 87043 831)
 (strings 32 596392 168626)
 (string-bytes 1 19048398)
 (vectors 16 510975)
 (vector-slots 8 16740055 1945258)
 (floats 8 10375 27300)
 (intervals 56 231953 19977)
 (buffers 992 43))

-- 
Ihor Radchenko,
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




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57447; Package emacs. (Sat, 27 Aug 2022 07:03:01 GMT) Full text and rfc822 format available.

Message #8 received at 57447 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ihor Radchenko <yantar92 <at> gmail.com>
Cc: 57447 <at> debbugs.gnu.org
Subject: Re: bug#57447: 28.1.90;
 Can font-lock stop requesting fontification of invisible text?
Date: Sat, 27 Aug 2022 10:02:39 +0300
> From: Ihor Radchenko <yantar92 <at> gmail.com>
> Date: Sat, 27 Aug 2022 13:34:57 +0800
> 
> Org mode tends to hide large chunks of text under folded headlines.
> I expect this hidden text to be ignored by the font-lock engine.
> 
> However, in reality, there appear to be some scenarios when hidden text
> is, in fact, being requested for fontification.
> 
> I have an Org file with a number of folded headlines. 32 of them can fit
> into one screen of text on my system, when folded. The total character
> count contained within the folded headlines (both visible and inside the
> 32 hidden text chunks) is 12742. However, most of this text is folded, and only 2446 characters are visible in the buffer.
> 
> I expect font-lock to fontify around 2446 characters (32 lines), but
> Emacs instead requests fontification of 9374 characters (315 lines; 10
> screens of text) at once; ~1.5k chars for each folded text region.
> 
> Fontification of 10 screens of text is obviously 10x slower and can
> create noticeable feedback slowdowns.
> 
> Can anything be done to make Emacs fontify less (or none) of the hidden
> text?

I explained that recently, in a discussion in which you participated:
the display engine skips invisible text, but that cannot completely
avoid fontifications of some of the invisible text.

The technical reason for that is that the display engine considers the
'fontified' property before it considers the 'invisible' property (and
any other properties).  Since fontification-functions put text
properties on buffer text, the 'fontified' property _must_ be examined
first, and the fontification-functions _must_ be invoked _before_ the
properties are examined; otherwise we'd risk behaving incorrectly due
to outdated or not-yet-existing properties.

One way this could be improved is by making jit-lock-chunk-size
smaller.  This will make the probability of such "over-fontification"
lower.

If a mode _knows_ that no fontifications could ever produce invisible
properties or overlays, then its fontification-functions could stop
whenever they encounter invisible text.

> The fontification log is:
> 
> org-font-lock: About to fontify 13481..15094
> org-font-lock: Fontified drawer(13372..13487) completely.

Thanks, but this log is insufficient to analyze whether the code
functions correctly.  To do such an analysis one must know which text
parts (in therms of buffer positions) were invisible and which
weren't.  Also, you haven't shown the code which produces the log, so
the exact meanings of "about to fontify", "fontfied drawer", and the
rest of the log messages, as well as the numerical notations like
"13487:+235", are unclear.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57447; Package emacs. (Sat, 27 Aug 2022 07:45:02 GMT) Full text and rfc822 format available.

Message #11 received at 57447 <at> debbugs.gnu.org (full text, mbox):

From: Ihor Radchenko <yantar92 <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 57447 <at> debbugs.gnu.org
Subject: Re: bug#57447: 28.1.90; Can font-lock stop requesting fontification
 of invisible text?
Date: Sat, 27 Aug 2022 15:45:19 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Can anything be done to make Emacs fontify less (or none) of the hidden
>> text?
>
> I explained that recently, in a discussion in which you participated:
> the display engine skips invisible text, but that cannot completely
> avoid fontifications of some of the invisible text.
>
> The technical reason for that is that the display engine considers the
> 'fontified' property before it considers the 'invisible' property (and
> any other properties).  Since fontification-functions put text
> properties on buffer text, the 'fontified' property _must_ be examined
> first, and the fontification-functions _must_ be invoked _before_ the
> properties are examined; otherwise we'd risk behaving incorrectly due
> to outdated or not-yet-existing properties.

This issue surfaced exactly because I was hoping that the overheads are
not going to be too terrible if we leave Emacs decide what to fontify.
In the past, Org explicitly suppressed fontification of all the hidden
text.

I did expect some invisible text to be fontified, but did not expect 10x
increase in the requested text size.

> One way this could be improved is by making jit-lock-chunk-size
> smaller.  This will make the probability of such "over-fontification"
> lower.

I tried to reduce the chunk size and at appears to help. However, I am
not sure if there are other side effects of reducing
jit-lock-chunk-size.

> If a mode _knows_ that no fontifications could ever produce invisible
> properties or overlays, then its fontification-functions could stop
> whenever they encounter invisible text.

This is not so simple in Org, unfortunately. Sometimes, we do want to
fontify invisible text for the purposes of imenu/agenda/etc.

The code required to handle invisibility manually gets quite complex:
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=dd0a723603ec4c9085a10ac8fbf864fdb026e48a

>> The fontification log is:
>> 
>> org-font-lock: About to fontify 13481..15094
>> org-font-lock: Fontified drawer(13372..13487) completely.
>
> Thanks, but this log is insufficient to analyze whether the code
> functions correctly.  To do such an analysis one must know which text
> parts (in therms of buffer positions) were invisible and which
> weren't.  Also, you haven't shown the code which produces the log, so
> the exact meanings of "about to fontify", "fontfied drawer", and the
> rest of the log messages, as well as the numerical notations like
> "13487:+235", are unclear.

"About to fontify" refers to region boundaries used to call
font-lock-fontify-region. The other messages refer to the actual
fontification that was performed.

The code producing the messages is in
https://github.com/yantar92/org/blob/feature/org-font-lock-element/lisp/org-font-lock-core.el
Search for org-font-lock-verbose in the code.

If you want to test it yourself, clone https://github.com/yantar92/org
and use feature/org-font-lock-element branch with the file I provided,
unfold the "Home" headline, and then unfold the "Ideas ..." headline.

To enable messages, you need to set org-font-lock-verbose to non-nil.

-- 
Ihor Radchenko,
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




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57447; Package emacs. (Sat, 27 Aug 2022 09:19:02 GMT) Full text and rfc822 format available.

Message #14 received at 57447 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ihor Radchenko <yantar92 <at> gmail.com>
Cc: 57447 <at> debbugs.gnu.org
Subject: Re: bug#57447: 28.1.90; Can font-lock stop requesting fontification
 of invisible text?
Date: Sat, 27 Aug 2022 12:18:51 +0300
> From: Ihor Radchenko <yantar92 <at> gmail.com>
> Cc: 57447 <at> debbugs.gnu.org
> Date: Sat, 27 Aug 2022 15:45:19 +0800
> 
> I did expect some invisible text to be fontified, but did not expect 10x
> increase in the requested text size.

The increase depends on how much text is hidden in each chunk,
relative to jit-lock-chunk-size.  If you have a lot of small shunks of
hidden text interspersed with visible text, you could have all of the
invisible text fontified.

> > One way this could be improved is by making jit-lock-chunk-size
> > smaller.  This will make the probability of such "over-fontification"
> > lower.
> 
> I tried to reduce the chunk size and at appears to help. However, I am
> not sure if there are other side effects of reducing
> jit-lock-chunk-size.

If the size is smaller than the visible portion of the buffer, it will
cause repeated calls to fontification-functions, instead of just one
call.  If fontification-functions do their job in approximately linear
time, you shouldn't see any adverse effects, I think.  But if each
call to fontification-functions incurs some one-time overhead that is
relatively expensive, the result could be slower redisplay when the
window is scrolled a lot.

> The code producing the messages is in
> https://github.com/yantar92/org/blob/feature/org-font-lock-element/lisp/org-font-lock-core.el
> Search for org-font-lock-verbose in the code.
> 
> If you want to test it yourself, clone https://github.com/yantar92/org
> and use feature/org-font-lock-element branch with the file I provided,
> unfold the "Home" headline, and then unfold the "Ideas ..." headline.

I only want to test that if you see something that is inconsistent
with my description of how this stuff works, including the value of
jit-lock-chunk-size.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57447; Package emacs. (Sat, 27 Aug 2022 10:37:02 GMT) Full text and rfc822 format available.

Message #17 received at 57447 <at> debbugs.gnu.org (full text, mbox):

From: Ihor Radchenko <yantar92 <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 57447 <at> debbugs.gnu.org
Subject: Re: bug#57447: 28.1.90; Can font-lock stop requesting fontification
 of invisible text?
Date: Sat, 27 Aug 2022 18:37:36 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Ihor Radchenko <yantar92 <at> gmail.com>
>> Cc: 57447 <at> debbugs.gnu.org
>> Date: Sat, 27 Aug 2022 15:45:19 +0800
>> 
>> I did expect some invisible text to be fontified, but did not expect 10x
>> increase in the requested text size.
>
> The increase depends on how much text is hidden in each chunk,
> relative to jit-lock-chunk-size.  If you have a lot of small shunks of
> hidden text interspersed with visible text, you could have all of the
> invisible text fontified.

This is unfortunate.

>> > One way this could be improved is by making jit-lock-chunk-size
>> > smaller.  This will make the probability of such "over-fontification"
>> > lower.
>> 
>> I tried to reduce the chunk size and at appears to help. However, I am
>> not sure if there are other side effects of reducing
>> jit-lock-chunk-size.
>
> If the size is smaller than the visible portion of the buffer, it will
> cause repeated calls to fontification-functions, instead of just one
> call.  If fontification-functions do their job in approximately linear
> time, you shouldn't see any adverse effects, I think.  But if each
> call to fontification-functions incurs some one-time overhead that is
> relatively expensive, the result could be slower redisplay when the
> window is scrolled a lot.

This may be an issue in some scenarios.
I am wondering if something like font-lock-extend-region-functions may
be utilized to shrink the fontification boundaries.

> I only want to test that if you see something that is inconsistent
> with my description of how this stuff works, including the value of
> jit-lock-chunk-size.

If jit-lock-chunk-size must be an actual upper bound
 "Jit-lock fontifies chunks of at most this many characters at a time."

then it does not always hold:

jit-lock-chunk-size = 1500
|   beg |   end | chunk size |
|  6083 |  6852 |        769 |
|  7181 |  8725 |       1544 |
|  9934 | 11570 |       1636 |
| 11905 | 13418 |       1513 |
| 13481 | 15094 |       1613 |
| 15275 | 16796 |       1521 |
| 16827 | 18389 |       1562 |
| 18728 | 20395 |       1667 |
| 20605 | 22161 |       1556 |
| 22161 | 23795 |       1634 |
#+TBLFM: $3=$2-$1

jit-lock-chunk-size = 150
|   beg |   end | chunk size |
|     1 |   169 |        168 |
|   169 |   319 |        150 |
|   351 |   509 |        158 |
|   532 |   708 |        176 |
|   883 |  1043 |        160 |
|  1142 |  1463 |        321 |
|  1624 |  1780 |        156 |
|  1895 |  2060 |        165 |
|  2060 |  2235 |        175 |
|  2235 |  2395 |        160 |
|  2395 |  2562 |        167 |
|  2677 |  2900 |        223 |
|  3061 |  3294 |        233 |
|  3392 |  3559 |        167 |
|  3657 |  3813 |        156 |
|  3849 |  4021 |        172 |
|  4182 |  4534 |        352 | <- >2x chunk size
|  4743 |  4902 |        159 |
|  4938 |  5097 |        159 |
|  5133 |  5313 |        180 |
|  5313 |  5509 |        196 |
|  5561 |  5751 |        190 |
|  5751 |  5917 |        166 |
|  5917 |  6077 |        160 |
|  6077 |  6237 |        160 |
|  6237 |  6397 |        160 |
|  6460 |  6629 |        169 |
|  7181 |  7364 |        183 |
|  7829 |  7989 |        160 |
|  9934 | 10199 |        265 |
| 10478 | 10638 |        160 |
| 11268 | 11432 |        164 |
| 11905 | 12080 |        175 |
| 12502 | 12683 |        181 |
| 12746 | 12901 |        155 |
| 13000 | 13156 |        156 |
| 13241 | 13418 |        177 |
| 13481 | 13664 |        183 |
| 13716 | 13922 |        206 |
| 14171 | 14336 |        165 |
| 14336 | 14491 |        155 |
| 14576 | 14741 |        165 |
| 15275 | 15495 |        220 |
| 15501 | 15751 |        250 |
| 15877 | 16115 |        238 |
| 16200 | 16366 |        166 |
| 16451 | 16613 |        162 |
| 16827 | 17091 |        264 |
| 18728 | 18946 |        218 |
| 19061 | 19240 |        179 |
| 19416 | 19712 |        296 | <- 2x chunk size
| 19810 | 19970 |        160 |
| 20016 | 20193 |        177 |
| 20245 | 20408 |        163 |
| 20605 | 20770 |        165 |
| 22161 | 22427 |        266 |
| 22427 | 22590 |        163 |
#+TBLFM: $3=$2-$1

-- 
Ihor Radchenko,
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




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57447; Package emacs. (Sat, 27 Aug 2022 11:05:01 GMT) Full text and rfc822 format available.

Message #20 received at 57447 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ihor Radchenko <yantar92 <at> gmail.com>,
 Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 57447 <at> debbugs.gnu.org
Subject: Re: bug#57447: 28.1.90; Can font-lock stop requesting fontification
 of invisible text?
Date: Sat, 27 Aug 2022 14:05:00 +0300
> From: Ihor Radchenko <yantar92 <at> gmail.com>
> Cc: 57447 <at> debbugs.gnu.org
> Date: Sat, 27 Aug 2022 18:37:36 +0800
> 
> > If the size is smaller than the visible portion of the buffer, it will
> > cause repeated calls to fontification-functions, instead of just one
> > call.  If fontification-functions do their job in approximately linear
> > time, you shouldn't see any adverse effects, I think.  But if each
> > call to fontification-functions incurs some one-time overhead that is
> > relatively expensive, the result could be slower redisplay when the
> > window is scrolled a lot.
> 
> This may be an issue in some scenarios.
> I am wondering if something like font-lock-extend-region-functions may
> be utilized to shrink the fontification boundaries.

I don't know.  Maybe Stefan does.

> > I only want to test that if you see something that is inconsistent
> > with my description of how this stuff works, including the value of
> > jit-lock-chunk-size.
> 
> If jit-lock-chunk-size must be an actual upper bound
>  "Jit-lock fontifies chunks of at most this many characters at a time."
> 
> then it does not always hold:

How did you collect the BEG and END values?  FWIW, I don't see
anything in jit-lock that enlarges the chunk size, except perhaps in
the stealth-fontification case, which you didn't activate?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57447; Package emacs. (Sat, 27 Aug 2022 11:12:01 GMT) Full text and rfc822 format available.

Message #23 received at 57447 <at> debbugs.gnu.org (full text, mbox):

From: Ihor Radchenko <yantar92 <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 57447 <at> debbugs.gnu.org, Stefan Monnier <monnier <at> iro.umontreal.ca>
Subject: Re: bug#57447: 28.1.90; Can font-lock stop requesting fontification
 of invisible text?
Date: Sat, 27 Aug 2022 19:11:52 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

>> then it does not always hold:
>
> How did you collect the BEG and END values?  FWIW, I don't see
> anything in jit-lock that enlarges the chunk size, except perhaps in
> the stealth-fontification case, which you didn't activate?

BEG and END in my data are calculated when matching a font-lock-keyword.
BEG is (point) when the keyword function is called and END is the LIMIT.

-- 
Ihor Radchenko,
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




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57447; Package emacs. (Sat, 27 Aug 2022 11:18:01 GMT) Full text and rfc822 format available.

Message #26 received at 57447 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ihor Radchenko <yantar92 <at> gmail.com>
Cc: 57447 <at> debbugs.gnu.org, monnier <at> iro.umontreal.ca
Subject: Re: bug#57447: 28.1.90; Can font-lock stop requesting fontification
 of invisible text?
Date: Sat, 27 Aug 2022 14:17:20 +0300
> From: Ihor Radchenko <yantar92 <at> gmail.com>
> Cc: Stefan Monnier <monnier <at> iro.umontreal.ca>,  57447 <at> debbugs.gnu.org
> Date: Sat, 27 Aug 2022 19:11:52 +0800
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> then it does not always hold:
> >
> > How did you collect the BEG and END values?  FWIW, I don't see
> > anything in jit-lock that enlarges the chunk size, except perhaps in
> > the stealth-fontification case, which you didn't activate?
> 
> BEG and END in my data are calculated when matching a font-lock-keyword.
> BEG is (point) when the keyword function is called and END is the LIMIT.

Then I guess the reason for this is in font-lock code, not in
jit-lock.el nor in the display engine.  I guess extending the region
to include whole lines could be the reason?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57447; Package emacs. (Sat, 27 Aug 2022 11:24:02 GMT) Full text and rfc822 format available.

Message #29 received at 57447 <at> debbugs.gnu.org (full text, mbox):

From: Ihor Radchenko <yantar92 <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 57447 <at> debbugs.gnu.org, monnier <at> iro.umontreal.ca
Subject: Re: bug#57447: 28.1.90; Can font-lock stop requesting fontification
 of invisible text?
Date: Sat, 27 Aug 2022 19:24:05 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

>> BEG and END in my data are calculated when matching a font-lock-keyword.
>> BEG is (point) when the keyword function is called and END is the LIMIT.
>
> Then I guess the reason for this is in font-lock code, not in
> jit-lock.el nor in the display engine.  I guess extending the region
> to include whole lines could be the reason?

You are likely right.
After quick checking, the BEG..END boundaries appear to be at BOL all
the time.

-- 
Ihor Radchenko,
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




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57447; Package emacs. (Sat, 27 Aug 2022 15:22:02 GMT) Full text and rfc822 format available.

Message #32 received at 57447 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 57447 <at> debbugs.gnu.org, Ihor Radchenko <yantar92 <at> gmail.com>
Subject: Re: bug#57447: 28.1.90; Can font-lock stop requesting fontification
 of invisible text?
Date: Sat, 27 Aug 2022 11:21:11 -0400
>> > If the size is smaller than the visible portion of the buffer, it will
>> > cause repeated calls to fontification-functions, instead of just one
>> > call.  If fontification-functions do their job in approximately linear
>> > time, you shouldn't see any adverse effects, I think.  But if each
>> > call to fontification-functions incurs some one-time overhead that is
>> > relatively expensive, the result could be slower redisplay when the
>> > window is scrolled a lot.
>> This may be an issue in some scenarios.
>> I am wondering if something like font-lock-extend-region-functions may
>> be utilized to shrink the fontification boundaries.
> I don't know.  Maybe Stefan does.

The short answer is: no.
[ Tho I don't understand how the question relates to the text before
  it: reducing the size of a chunk wouldn't reduce the number of times
  fontification-functions is called.  ]


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57447; Package emacs. (Sat, 27 Aug 2022 15:25:02 GMT) Full text and rfc822 format available.

Message #35 received at 57447 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 57447 <at> debbugs.gnu.org, yantar92 <at> gmail.com
Subject: Re: bug#57447: 28.1.90; Can font-lock stop requesting fontification
 of invisible text?
Date: Sat, 27 Aug 2022 18:25:05 +0300
> From: Stefan Monnier <monnier <at> iro.umontreal.ca>
> Cc: Ihor Radchenko <yantar92 <at> gmail.com>,  57447 <at> debbugs.gnu.org
> Date: Sat, 27 Aug 2022 11:21:11 -0400
> 
> [ Tho I don't understand how the question relates to the text before
>   it: reducing the size of a chunk wouldn't reduce the number of times
>   fontification-functions is called.  ]

I think the idea is to make it fontify fewer characters.

And yes, making the chunks smaller increases the probability that
invisible text will be skipped before it is (unnecessarily) fontified.
E.g., imagine that you set jit-lock-chunk-size to the value 1.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#57447; Package emacs. (Sun, 28 Aug 2022 01:23:02 GMT) Full text and rfc822 format available.

Message #38 received at 57447 <at> debbugs.gnu.org (full text, mbox):

From: Ihor Radchenko <yantar92 <at> gmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 57447 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>
Subject: Re: bug#57447: 28.1.90; Can font-lock stop requesting fontification
 of invisible text?
Date: Sun, 28 Aug 2022 09:23:01 +0800
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:

>>> I am wondering if something like font-lock-extend-region-functions may
>>> be utilized to shrink the fontification boundaries.
>> I don't know.  Maybe Stefan does.
>
> The short answer is: no.
> [ Tho I don't understand how the question relates to the text before
>   it: reducing the size of a chunk wouldn't reduce the number of times
>   fontification-functions is called.  ]

The aim is skipping invisible text during fontification.

-- 
Ihor Radchenko,
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




Reply sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
You have taken responsibility. (Fri, 09 Sep 2022 14:53:02 GMT) Full text and rfc822 format available.

Notification sent to Ihor Radchenko <yantar92 <at> gmail.com>:
bug acknowledged by developer. (Fri, 09 Sep 2022 14:53:02 GMT) Full text and rfc822 format available.

Message #43 received at 57447-done <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: 57447-done <at> debbugs.gnu.org
Subject: Re: bug#57447: 28.1.90; Can font-lock stop requesting fontification
 of invisible text?
Date: Fri, 09 Sep 2022 10:52:00 -0400
Ihor Radchenko [2022-09-08 13:44:28] wrote:
> Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
>>> The first alternative seems cheap enough that it's worth a try.
>> I pushed it to `master`.
> Thanks! I consider the original bug report resolved now.

OK, closing, and thanks I think it's a nice improvement and I wouldn't
have come up with it on my own :-)


        Stefan





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 08 Oct 2022 11:24:09 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 200 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.