- (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 "%scount: %s"
- (org-ref-get-label-context
- (org-element-property :path object))
- (org-ref-count-labels
- (org-element-property :path object))))
-
- ((string= type "eqref")
- (message "%scount: %s"
- (org-ref-get-label-context
- (org-element-property :path object))
- (org-ref-count-labels
- (org-element-property :path object))))
-
- ;; 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")))))
-
- ((string= type "custom-id")
- (save-excursion
- (org-open-link-from-string
- (format "[[#%s]]" (org-element-property :path object)))
- (message "%s" (org-get-heading))))
-
- ;; check if the bibliography files exist.
- ((string= type "bibliography")
- (let* ((bibfile)
- ;; object is the link you clicked on
- (object (org-element-context))
- (link-string (org-element-property :path object))
- (link-string-beginning)
- (link-string-end))
- (save-excursion
- (goto-char (org-element-property :begin object))
- (search-forward link-string nil nil 1)
- (setq link-string-beginning (match-beginning 0))
- (setq link-string-end (match-end 0)))
-
- ;; make sure we are in link and not before the :
- (when (> link-string-beginning (point))
- (goto-char link-string-beginning))
-
- ;; now if we have comma separated bibliographies
- ;; we find the one clicked on. we want to
- ;; search forward to next comma from point
+ (save-restriction
+ (widen)
+ (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 "%scount: %s"
+ (org-ref-get-label-context
+ (org-element-property :path object))
+ (org-ref-count-labels
+ (org-element-property :path object))))
+
+ ((string= type "eqref")
+ (message "%scount: %s"
+ (org-ref-get-label-context
+ (org-element-property :path object))
+ (org-ref-count-labels
+ (org-element-property :path object))))
+
+ ;; 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")))))
+
+ ((string= type "custom-id")