]> git.donarmstrong.com Git - org-ref.git/blobdiff - org-ref.org
switch alternative cite selection to helm
[org-ref.git] / org-ref.org
index 0561f76a7d583075264fdd1d2099a3f18fa679fe..7f13af029ba26b9c2fa80fe4fbcb97499bacb40d 100644 (file)
@@ -2716,8 +2716,8 @@ ref:test citep:test  label:rett
   (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)))
@@ -2727,6 +2727,10 @@ ref:test citep:test  label:rett
       (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
@@ -2737,7 +2741,7 @@ ref:test citep:test  label:rett
                  " occurence"
                  (when (or (= count 0)
                            (> count 1))
-                   "s"))))))))
+                   "s")))))))))
 
 
 (when org-ref-show-citation-on-enter
@@ -2818,12 +2822,15 @@ Technically, this function should return a string that is inserted by helm. This
      (t
       (insert
        (concat (if helm-current-prefix-arg
+                  (helm :sources `((name . "link types")
+                                   (candidates . ,org-ref-cite-types)
+                                   (action . (lambda (x) x))))
                   (ido-completing-read "Type: " org-ref-cite-types)
                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)))
@@ -2874,20 +2881,33 @@ 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)
+    ;; 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