diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | bog.el | 20 |
2 files changed, 21 insertions, 0 deletions
@@ -4,6 +4,7 @@ Bog NEWS -- history of user-visible changes -*- mode: org; -*- ** New features +- New command ~bog-list-orphan-files~. - New command ~bog-dired-jump-to-citekey-file~. * v1.1.0 @@ -914,6 +914,26 @@ instead of citekeys from file names in `bog-bib-directory'." (lambda (dir) (directory-files dir nil ".*\\.bib$" t)) dirs))))))) +;;;###autoload +(defun bog-list-orphan-bibs () + "Find bib citekeys that don't have a citekey heading." + (interactive) + (let ((orphans (bog--set-difference (bog-bib-citekeys) + (bog-all-heading-citekeys))) + (orphan-bufname "*Bog orphan bibs*")) + (if orphans + (with-current-buffer (get-buffer-create orphan-bufname) + (erase-buffer) + (setq default-directory bog-root-directory) + (insert ?\n) + (insert (mapconcat #'identity orphans "\n")) + (goto-char (point-min)) + (org-mode) + (pop-to-buffer (current-buffer))) + (let ((old-buf (get-buffer-create orphan-bufname))) + (when old-buf + (kill-buffer old-buf))) + (message "No orphans found")))) ;;; Web |