branch: externals/denote commit 4318efe7e8ce2bcd2cafa386a903054273203fd5 Author: Ashton Wiersdorf <m...@wiersdorf.dev> Commit: Ashton Wiersdorf <m...@wiersdorf.dev>
Add indicator for buffer having backlinks to denote-rename-buffer --- denote-rename-buffer.el | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/denote-rename-buffer.el b/denote-rename-buffer.el index 1335d3a22c..f85a7da57b 100644 --- a/denote-rename-buffer.el +++ b/denote-rename-buffer.el @@ -38,11 +38,18 @@ :link '(info-link "(denote) Top") :link '(url-link :tag "Homepage" "https://protesilaos.com/emacs/denote")) -(defcustom denote-rename-buffer-format "%t" +(defcustom denote-buffer-has-backlinks-string "→ " + "A string used to indicate that a buffer has backlinks pointing to it." + :type 'string + :package-version '(denote . "2.1.0") + :group 'denote-rename-buffer) + +(defcustom denote-rename-buffer-format "%b%t" "The format of the buffer name `denote-rename-buffer' should use. Thie value is a string that treats specially the following specifiers: +- The %b inserts `denote-buffer-has-backlinks-string'. - The %t is the Denote TITLE of the file. - The %i is the Denote IDENTIFIER of the file. - The %d is the same as %i (DATE mnemonic). @@ -91,20 +98,22 @@ buffer will be used, if available." "Parse the BUFFER through the `denote-rename-buffer-format'." (when-let ((file (buffer-file-name buffer)) (type (denote-filetype-heuristics file))) - (string-trim - (format-spec denote-rename-buffer-format - (list (cons ?t (cond - ((denote-retrieve-front-matter-title-value file type)) - ((denote-retrieve-filename-title file)) - (t ""))) - (cons ?i (or (denote-retrieve-filename-identifier file) "")) - (cons ?d (or (denote-retrieve-filename-identifier file) "")) - (cons ?s (or (denote-retrieve-filename-signature file) "")) - (cons ?k (if-let ((kws (denote-retrieve-front-matter-keywords-value file type))) - (denote-keywords-combine kws) - (or (denote-retrieve-filename-keywords file) ""))) - (cons ?% "%")) - 'delete)))) + (let ((has-backlinks (not (zerop (length (denote-link-return-backlinks file)))))) + (string-trim + (format-spec denote-rename-buffer-format + (list (cons ?t (cond + ((denote-retrieve-front-matter-title-value file type)) + ((denote-retrieve-filename-title file)) + (t ""))) + (cons ?b (if has-backlinks denote-buffer-has-backlinks-string "")) + (cons ?i (or (denote-retrieve-filename-identifier file) "")) + (cons ?d (or (denote-retrieve-filename-identifier file) "")) + (cons ?s (or (denote-retrieve-filename-signature file) "")) + (cons ?k (if-let ((kws (denote-retrieve-front-matter-keywords-value file type))) + (denote-keywords-combine kws) + (or (denote-retrieve-filename-keywords file) ""))) + (cons ?% "%")) + 'delete))))) (defun denote-rename-buffer (&optional buffer) "Rename current buffer or optional BUFFER with `denote-rename-buffer-format'.