;; 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)
(interactive)
(let* ((object (org-element-context))
(type (org-element-property :type object)))
-
- (cond
+ (save-excursion
+ (cond
;; cite links
((-contains? org-ref-cite-types type)
(message (org-ref-get-citation-string-at-point)))
(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
" occurence"
(when (or (= count 0)
(> count 1))
- "s"))))))))
-
-
-(when org-ref-show-citation-on-enter
- (add-hook 'post-command-hook 'org-ref-link-message))
+ "s")))))))))
#+END_SRC
* Aliases
(-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
(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
- (ido-completing-read "Type: " org-ref-cite-types)
+ (helm :sources `((name . "link types")
+ (candidates . ,org-ref-cite-types)
+ (action . (lambda (x) x))))
org-ref-default-citation-link)
":"
(s-join "," keys))))))
-;; return empty string for helm
-"")
+ ;; return empty string for helm
+ "")
(setq helm-bibtex-format-citation-functions
'((org-mode . helm-bibtex-format-org-ref)))
(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)
+ ;; Conditional pdf functions
+ (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
'("Open notes" . org-ref-open-notes-at-point)
t)
+ ;; conditional url and doi functions
(when (or url doi)
(add-to-list
'candidates