branch: externals/denote commit 6374751ee20be95637dcf5eefd52c0da321158a6 Author: Protesilaos Stavrou <i...@protesilaos.com> Commit: Protesilaos Stavrou <i...@protesilaos.com>
REMOVE 'denote-faces-broken-link' It leads to performance issues in Org under certain circumstances. Fundamentally, this has to do with the fontification mechanism, which would call the 'denote-link-ol-face' function too often. Thanks to Peter Prevos for reporting the issue and discussing it with me: <https://lists.sr.ht/~protesilaos/denote/%3C87k05umyyo.fsf%40prevos.net%3E>. --- README.org | 7 ------- denote.el | 21 ++------------------- 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/README.org b/README.org index 2631b91106..451450633d 100644 --- a/README.org +++ b/README.org @@ -1142,13 +1142,6 @@ like an ordinary link by default. This is just a convenience for the user/theme in case they want =denote:= links to remain distinct from other links. -#+vindex: denote-faces-broken-link -In Org files, broken links get the ~denote-faces-broken-link~ if the -linked identifier does not resolve to a file path with a note. The -ability to use distinct faces for such a scenario is a feature of Org, -which is not available in other supported file types that use Emacs' -generic button mechanism. - ** Insert links matching a regexp :PROPERTIES: :CUSTOM_ID: h:9bec2c83-36ca-4951-aefc-7187c5463f90 diff --git a/denote.el b/denote.el index 4cf1a5cc94..37a077caa1 100644 --- a/denote.el +++ b/denote.el @@ -1938,12 +1938,7 @@ relevant front matter." :group 'denote-faces :package-version '(denote . "0.5.0")) -(defface denote-faces-broken-link '((t :inherit (error link))) - "Face used to style Denote broken links in the buffer. -This only works in Org files, as Emacs' generic buttons do not -provide a facility that uses a face based on certain conditions." - :group 'denote-faces - :package-version '(denote . "0.5.0")) +(make-obsolete 'denote-faces-broken-link nil "1.0.0") (defface denote-faces-subdirectory '((t :inherit bold)) "Face for subdirectory of file name. @@ -2575,18 +2570,6 @@ file." (denote-link--ol-resolve-link-to-target link) nil)) -(defun denote-link-ol-face (link) - "Return appropriate face for LINK. -If the LINK resolves to a note, use `denote-faces-link', else -return `denote-faces-broken-link'. When links are propertized in -other contexts, apply the generic `link' face (this happens with -the Org agenda)." - (if (not (denote--current-file-is-note-p)) - 'link - (if (denote-link--ol-resolve-link-to-target link) - 'denote-faces-link - 'denote-faces-broken-link))) - (defun denote-link-ol-complete () "Like `denote-link' but for Org integration. This lets the user complete a link through the `org-insert-link' @@ -2642,7 +2625,7 @@ backend." (org-link-set-parameters "denote" :follow #'denote-link-ol-follow - :face #'denote-link-ol-face + :face 'denote-faces-link :complete #'denote-link-ol-complete :store #'denote-link-ol-store :export #'denote-link-ol-export)))))