X-Git-Url: https://git.donarmstrong.com/?p=org-ref.git;a=blobdiff_plain;f=org-ref.org;h=8852a84dd72c48895a52ce4113aaabfe086a617a;hp=1776f66c8bd52525327423c462659621be6caf9e;hb=e8bdba99af3806a9d61c33ffc4a16e256b627260;hpb=716e4f316ac36aa47d2234e9a626260bb055cd29 diff --git a/org-ref.org b/org-ref.org index 1776f66..8852a84 100644 --- a/org-ref.org +++ b/org-ref.org @@ -66,6 +66,7 @@ The only external require is reftex-cite (require 'reftex-cite) (require 'dash) (require 'helm) +(require 'helm-config) (require 'helm-bibtex) #+END_SRC @@ -386,41 +387,75 @@ cite*:sokalski-2012-optim-ta,zhang-2011-spatial-tio2,li-2012-heter-ceram,li-2013 citenum:sokalski-2012-optim-ta,zhang-2011-spatial-tio2,li-2012-heter-ceram,li-2013-photoc -#+BEGIN_SRC emacs-lisp +ref:test + +label:test + +#+BEGIN_SRC emacs-lisp :tangle org-ref.el (defcustom org-ref-colorize-links - nil + t "When non-nil, change colors of links" :group 'org-ref) + (defcustom org-ref-cite-color "forest green" "Color of cite like links" :group 'org-ref) + (defcustom org-ref-ref-color - "royal blue" + "dark red" "Color of ref like links" :group 'org-ref) + (defcustom org-ref-label-color "black" "Color of label links" :group 'org-ref) + (defvar org-ref-cite-re nil "regexp for cite links") + (setq org-ref-cite-re - (concat "\\(" (mapconcat 'identity org-ref-cite-types "\\|") "\\)" + (concat "\\(" (mapconcat + (lambda (x) + (replace-regexp-in-string "\*" "\\\\*" x) + ) + org-ref-cite-types "\\|") "\\)" ":\\([a-zA-Z0-9-_:]*,?\\)*")) -(setq org-ref-cite-color "red" org-ref-colorize-links t) + +(setq org-ref-label-re + "label:\\([a-zA-Z0-9-_:]*,?\\)*") + + +(setq org-ref-ref-re + "ref:\\([a-zA-Z0-9-_:]*,?\\)*") + + (defface org-ref-cite-face - `((t (:inherit org-link :foreground "red"))) - "Color for cite links") + `((t (:inherit org-link :foreground ,org-ref-cite-color))) + "Color for cite-like links in org-ref.") + + +(defface org-ref-label-face + `((t (:inherit org-link :foreground ,org-ref-label-color))) + "Color for ref links in org-ref.") + + +(defface org-ref-ref-face + `((t (:inherit org-link :foreground ,org-ref-ref-color))) + "Face for ref links in org-ref.") + (when org-ref-colorize-links - (highlight-regexp org-ref-cite-re 'org-ref-cite-face)) + (highlight-regexp org-ref-cite-re 'org-ref-cite-face) + (highlight-regexp org-ref-label-re 'org-ref-label-face) + (highlight-regexp org-ref-ref-re 'org-ref-ref-face)) #+END_SRC #+RESULTS: @@ -1678,9 +1713,15 @@ Now, we can see if an entry is in a file. #+BEGIN_SRC emacs-lisp :tangle org-ref.el (defun org-ref-key-in-file-p (key filename) "determine if the key is in the file" - (interactive "skey: \nsFile: ") (save-current-buffer (let ((bibtex-files (list filename))) + ;; This is something I am trying because when the bibtex file is open, and + ;; you have added to it, the only way I find to get the update to update + ;; is to close it and reopen it. or to save it and revert it. + (when (get-file-buffer filename) + (set-buffer (get-file-buffer filename)) + (save-buffer) + (revert-buffer t t)) (bibtex-search-entry key t)))) #+END_SRC @@ -3487,6 +3528,7 @@ This code provides a helm interface to things you can do when you click on a cit (org-ref-bib-citation))) "!!! No entry found !!!" ))) + (defun org-ref-cite-candidates () "Generate the list of possible candidates for click actions on a cite link. Checks for pdf and doi, and add appropriate functions."