X-Git-Url: https://git.donarmstrong.com/?p=org-ref.git;a=blobdiff_plain;f=org-ref.org;h=14258685dc140c4e2ab3f089b72fcc15607272f0;hp=8efc3c5133a60391e28bc917d6a357e5c21e1b99;hb=4420a5ef0e7ca6eba8922b4b3b3758e63736b591;hpb=34b22c7c5d44d112d9dd3d5f857516ae34bf8007 diff --git a/org-ref.org b/org-ref.org index 8efc3c5..1425868 100644 --- a/org-ref.org +++ b/org-ref.org @@ -218,11 +218,35 @@ We setup reftex here. We use a custom insert cite link function defined here: [[ ;; I do not remember why I put this next line in. It doesn't ;; work for org-files. Nothing very bad happens, but it gives ;; an annoying error. Commenting it out for now. - ;(reftex-parse-all) + ;(reftex-parse-all ) (make-local-variable 'reftex-cite-format) - (setq reftex-cite-format 'org) - (define-key org-mode-map (kbd org-ref-insert-cite-key) org-ref-insert-cite-function)) + (setq reftex-cite-format 'org)) + +;; define key for inserting citations +(define-key org-mode-map + (kbd org-ref-insert-cite-key) + org-ref-insert-cite-function) + +(when org-ref-show-citation-on-enter + (setq org-ref-message-timer + (run-with-idle-timer 0.5 t 'org-ref-link-message))) + +(defun org-ref-show-link-messages () + "Turn on link messages. You will see a message in the +minibuffer when on a cite, ref or label link." + (interactive) + (setq org-ref-message-timer + (run-with-idle-timer 0.5 t 'org-ref-link-message)) + ) +(defun org-ref-cancel-link-messages () + "Stop showing messages in minibuffer when on a link." + (interactive) + (cancel-timer org-ref-message-timer)) + +;; this approach caused the selected region to not be highlighted any more. +; (add-hook 'post-command-hook 'org-ref-link-message)) +; (remove-hook 'post-command-hook 'org-ref-link-message)) (add-hook 'org-mode-hook 'org-mode-reftex-setup) @@ -2023,7 +2047,6 @@ And at the end of the document put \makeglossaries. #+END_SRC - * Utilities ** create simple text citation from bibtex entry @@ -2653,9 +2676,7 @@ Sometimes it may be helpful to manually change the order of citations. These fun #+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. - -ref:test citep:test label:rett +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 run this in an idle timer. #+BEGIN_SRC emacs-lisp :tangle org-ref.el (defun org-ref-get-label-context (label) @@ -2714,38 +2735,35 @@ ref:test citep:test label:rett (defun org-ref-link-message () "Print a minibuffer message about the link that point is on." (interactive) - (let* ((object (org-element-context)) - (type (org-element-property :type object))) - (save-excursion - (cond - ;; cite links - ((-contains? org-ref-cite-types type) - (message (org-ref-get-citation-string-at-point))) - - ;; message some context about the label we are referring to - ((string= type "ref") - (message (org-ref-get-label-context - (org-element-property :path object)))) - - ((string= type "eqref") - (message (org-ref-get-label-context - (org-element-property :path object)))) - - ;; message the count - ((string= type "label") - (let ((count (org-ref-count-labels + (when (eq major-mode 'org-mode) + (let* ((object (org-element-context)) + (type (org-element-property :type object))) + (save-excursion + (cond + ;; cite links + ((-contains? org-ref-cite-types type) + (message (org-ref-get-citation-string-at-point))) + + ;; message some context about the label we are referring to + ((string= type "ref") + (message (org-ref-get-label-context (org-element-property :path object)))) - ;; get plurality on occurrence correct - (message (concat - (number-to-string count) - " occurence" - (when (or (= count 0) - (> count 1)) - "s"))))))))) + ((string= type "eqref") + (message (org-ref-get-label-context + (org-element-property :path object)))) -(when org-ref-show-citation-on-enter - (add-hook 'post-command-hook 'org-ref-link-message)) + ;; message the count + ((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" + (when (or (= count 0) + (> count 1)) + "s")))))))))) #+END_SRC * Aliases @@ -2801,6 +2819,7 @@ Technically, this function should return a string that is inserted by helm. This (-contains? org-ref-cite-types (org-element-property :type object))) + ;;(message-box "in a link") (goto-char (org-element-property :end object)) ;; sometimes there are spaces at the end of the link ;; this code moves point pack until no spaces are there @@ -2808,18 +2827,21 @@ Technically, this function should return a string that is inserted by helm. This (insert (concat "," (mapconcat 'identity keys ",")))) ;; We are next to a link, and we want to append + ;; next to a link means one character back is on a link. ((save-excursion (backward-char) (and (equal (org-element-type (org-element-context)) 'link) (-contains? org-ref-cite-types (org-element-property :type (org-element-context))))) - (goto-char (org-element-property :end object)) + ;;(message-box "at end of a link") + ;; (goto-char (org-element-property :end object)) (while (looking-back " ") (backward-char)) (insert (concat "," (mapconcat 'identity keys ",")))) ;; insert fresh link (t + ;;(message-box "fresh link") (insert (concat (if helm-current-prefix-arg (helm :sources `((name . "link types")