+# -*- org-edit-src-content-indentation: 0; -*-
#+TITLE: Org-ref - The best reference handling for org-mode
#+AUTHOR: John Kitchin
#+DATE: April 29, 2014
(org-ref-swap-keys i (- i 1) keys))
(setq keys (mapconcat 'identity keys ","))
;; and replace the link with the sorted keys
- (cl--set-buffer-substring begin end (concat type ":" keys " "))
+ (cl--set-buffer-substring
+ begin end
+ (concat
+ type ":" keys
+ ;; It seems the space at the end can get consumed, so we see if there
+ ;; is a space, and add it if so. Sometimes there is a comma or period,
+ ;; then we do not want a space.
+ (when
+ (save-excursion
+ (goto-char end)
+ (looking-back " ")) " ")))
;; now go forward to key so we can move with the key
(re-search-forward key)
(goto-char (match-beginning 0)))))
(defun helm-bibtex-candidates-formatter (candidates source)
"Formats BibTeX entries for display in results list."
(cl-loop
- with width = (with-helm-window (window-width))
- for entry in candidates
- for entry = (cdr entry)
- for entry-key = (helm-bibtex-get-value entry 'entry-key)
- for fields = (--map (helm-bibtex-clean-string
- (helm-bibtex-get-value entry it " "))
- '(author title year has-pdf has-note entry-type))
- for fields = (-update-at 0 'helm-bibtex-shorten-authors fields)
- for fields = (append fields
- (list (or (helm-bibtex-get-value entry 'keywords)
+ with width = (with-helm-window (helm-bibtex-window-width))
+ for entry in candidates
+ for entry = (cdr entry)
+ for entry-key = (helm-bibtex-get-value "=key=" entry)
+ if (assoc-string "author" entry 'case-fold)
+ for fields = '("author" "title" "year" "=has-pdf=" "=has-note=" "=type=")
+ else
+ for fields = '("editor" "title" "year" "=has-pdf=" "=has-note=" "=type=")
+ for fields = (--map (helm-bibtex-clean-string
+ (helm-bibtex-get-value it entry " "))
+ fields)
+ for fields = (-update-at 0 'helm-bibtex-shorten-authors fields)
+ for fields = (append fields
+ (list (or (helm-bibtex-get-value "keywords" entry)
"" )))
- collect
- (cons (s-format "$0 $1 $2 $3 $4$5 $6" 'elt
- (-zip-with (lambda (f w) (truncate-string-to-width f w 0 ?\s))
- fields (list 36 (- width 85) 4 1 1 7 7)))
- entry-key)))
+ collect
+ (cons (s-format "$0 $1 $2 $3 $4$5 $6" 'elt
+ (-zip-with (lambda (f w) (truncate-string-to-width f w 0 ?\s))
+ fields (list 36 (- width 85) 4 1 1 7 7)))
+ entry-key)))
#+END_SRC
Next, we add some functions to add keywords to a bibtex entry using a helm interface, and a new action to add keywords to entries from helm-bibtex.
'("Example" . (lambda () (message-box "You did it!")))
t)
-;;;###qautoload
+;;;###autoload
(defun org-ref-cite-click-helm (key)
"Open helm for actions on a cite link.
subtle points.