X-Git-Url: https://git.donarmstrong.com/?p=org-ref.git;a=blobdiff_plain;f=org-ref.org;h=d4dc2a40f5f0169b1067a2e72e79af7983b52910;hp=ae39ab90db19d312ce8300a99a63dfab005434f9;hb=21fc32b8c8386af4562833b9be6521ec3af69865;hpb=9afe00c1615fd24ee658620990ac03448279f04a diff --git a/org-ref.org b/org-ref.org index ae39ab9..d4dc2a4 100644 --- a/org-ref.org +++ b/org-ref.org @@ -2652,7 +2652,6 @@ Sometimes it may be helpful to manually change the order of citations. These fun (add-hook 'org-shiftleft-hook (lambda () (org-ref-swap-citation-link -1))) #+END_SRC - ** Lightweight messages about links To get a lighter weight message about the label, ref and cite links, we define a function that gives us the minibuffer message, without the menu. We add it to a hook that updates after every command, including cursor movements. @@ -2666,17 +2665,38 @@ ref:test citep:test label:rett (goto-char (point-min)) (when (re-search-forward (format "label:%s\\b" label) nil t) - (throw 'result (thing-at-point 'paragraph))) + (throw 'result (buffer-substring + (progn + (previous-line) + (beginning-of-line) + (point)) + (progn + (forward-line 4) + (point))))) (goto-char (point-min)) (when (re-search-forward (format "\\label{%s}" label) nil t) - (throw 'result (thing-at-point 'paragraph))) + (throw 'result (buffer-substring + (progn + (previous-line) + (beginning-of-line) + (point)) + (progn + (forward-line 4) + (point))))) (goto-char (point-min)) (when (re-search-forward (format "^#\\+label:\\s-*\\(%s\\)\\b" label) nil t) - (throw 'result (thing-at-point 'paragraph))) + (throw 'result (buffer-substring + (progn + (previous-line) + (beginning-of-line) + (point)) + (progn + (forward-line 4) + (point))))) (goto-char (point-min)) (when (re-search-forward @@ -2690,6 +2710,7 @@ ref:test citep:test label:rett (forward-line 4) (point)))))))) + (defun org-ref-link-message () "Print a minibuffer message about the link that point is on." (interactive) @@ -2703,7 +2724,6 @@ ref:test citep:test label:rett ;; message some context about the label we are referring to ((string= type "ref") -;; (message-box "%s" (org-element-property :path object)) (message (org-ref-get-label-context (org-element-property :path object)))) @@ -2711,6 +2731,7 @@ ref:test citep:test label:rett ((string= type "label") (let ((count (org-ref-count-labels (org-element-property :path object)))) + ;; get plurality on occurrence correct (message (concat (number-to-string count) " occurence" @@ -2718,6 +2739,7 @@ ref:test citep:test label:rett (> count 1)) "s")))))))) + (when org-ref-show-citation-on-enter (add-hook 'post-command-hook 'org-ref-link-message)) #+END_SRC @@ -2852,14 +2874,26 @@ Checks for pdf and doi, and add appropriate functions." (bibtex-autokey-get-field "doi")))) (candidates `(("Quit" . org-ref-citation-at-point) ("Open bibtex entry" . org-ref-open-citation-at-point)))) + ;; for some reason, when there is no doi or url, they are returned as "". I + ;; prefer nil so we correct this here. + (when (string= doi "") (setq doi nil)) + (when (string= url "") (setq url nil)) - - (when (file-exists-p pdf-file) + (if (file-exists-p pdf-file) + (add-to-list + 'candidates + '("Open pdf" . org-ref-open-pdf-at-point) + t + ) (add-to-list 'candidates - '("Open pdf" . org-ref-open-pdf-at-point) - t - )) + '("Try to get pdf" . (lambda () + (save-window-excursion + (org-ref-open-citation-at-point) + (bibtex-beginning-of-entry) + (doi-utils-get-bibtex-entry-pdf)))) + t)) + (add-to-list 'candidates